marceloverdijk/lesscss-java

Incorrect line number for errors when using imports

Opened this issue · 1 comments

When compiling a file that @imports another LESS file, lesscss-java reports the wrong line number for syntax errors.

For example, suppose I have the following files:

parent.less

@import "include.less";

body { !@#$% syntax error ^&*) }

include.less

.some-mixin ( @param ) {
    /* ... */
}

.another-mixin ( @param ) {
    /* ... */
}

lesscss-java throws a LessException with the error message "Syntax Error on line 9" when the error is really on line 3.

Looking through the source code, it appears that this behavior is the result of concatenating the parent file with all of its imports in LessSource.resolveImports() (LessSource.java, line 147, which gets fed in to LessCompiler.java, line 302).

Is there a technical reason for this design choice? It would be really nice if we could let less.js take care of resolving imports and reporting the correct line number for syntax errors.

(Credit goes to micmcg for pointing this out.)

Thanks!

Hi, I don't know what less.js does internally. Can you explain how less.js will take care of imports? Thanks