Need help on creating a wordfile for LESS

Syntax highlighting, code folding, brace matching, code indenting, and function list

Need help on creating a wordfile for LESS

Postby rhapdog » Thu Mar 15, 2012 9:44 am

Okay, I am still learning the syntax on the wordfiles, so bear with me. I've got the variables defined finally, and are working perfectly.

I need anything starting with a "#" OR "." and ending with a valid delimiter to be highlighted as a function.

I have the valid function definition to get the function list.

Functions should use . and # as a delimiter, and not require a space or tab in front of them, but may possibly have a space or tab in front. In other words, a function might follow another keyword or even a variable:
Code: Select all
@variable#functionName

or
Code: Select all
@variable.functionName() {
   // function contents
}

or
Code: Select all
.functionName(@arguments) { ...  }


Sometimes functions will be called as a function of a function:
Code: Select all
.functionOne#functionTwo

which will generate a different result than using them separately. Both should be highlighted as functions, even though they appear to be one word. The delimiters need to be recognized, but included as part of the function definition in the next word, and the . and # should be highlighted as part of that word.

. and # are both defined as delimiters, and need to be due to other areas of the language.

Here is another caveat... border, .border, @border, #border, are all different. border is a keyword, but can be redefined as a function without conflict, and it can also be defined as a variable without conflict.

"border" is defined in "/C2".
"** #" and "** ." are defined in "/C13".

However, "border" is always the same color, even if preceded by # . or @ when I need the color to change.
If I remove #, @, and . from the list of delimiters, then functions like @variable.functionName will cease to work properly.

Ideas?
User avatar
rhapdog
Master
Master
 
Posts: 272
Joined: Tue Apr 01, 2008 10:02 am
Location: Mississippi, USA

Re: Need help on creating a wordfile for LESS

Postby Mofi » Thu Mar 15, 2012 1:46 pm

In general I recommend not to syntax highlight symbol names which are not keywords of the language or predefined symbols in the libraries of the language. If everything defined by the language or the standard libraries of the language are syntax highlighted, the remaining words displayed as normal text are self-defined variables, functions, constants, etc.

It is never, really never a good idea to define a variable with the same name as a function. Most compilers like C/C++/C# compilers or interpreters like Javascript interpreters know from the context if the name references in a variable or a function. But for a human reading the source it is not so clear what is meant and for other tools like a text editor it is nearly impossible to interpret the word different according to context without being specially designed for that language.

However, in your case with functions starting either with . or # which of course must be word delimiters, it should be nevertheless possible to highlight them all. You just have to take the priority on syntax highlighting into account used by UltraEdit for duplicate words or substrings matching also predefined words. I have explained syntax highlighting priority in chapter How duplicate words are handled by UE/UES? of The ultimate test for duplicate words macros.

Without testing for your example with border following should result in correct highlighting.

/C1"Predefined Functions"
.border
/C2"Predefined Keywords"
border
/C3"All other Functions"
** . #

Important is that .border is also defined and not just ** . # because UltraEdit favors 100% matching words over substrings. You can imagine why on thinking how the word based syntax highlighting of UltraEdit is coded. The displayed text is split up into a list of words, then every displayed word is searched in the list of defined words and if there is a 100% match, the assigned color is used for this word. The remaining text after the simple word list compares are evaluated further with the substrings. .border must be defined in a color group with a lower number than border or it will be always highlighted with the color of border because . is also a delimiter.

I hope that syntax highlighting really works as I have explained it. Otherwise there is no chance to get .border highlighted different than just border because . and # must be word delimiters.
User avatar
Mofi
Grand Master
Grand Master
 
Posts: 4049
Joined: Thu Jul 29, 2004 11:00 pm
Location: Vienna

Re: Need help on creating a wordfile for LESS

Postby rhapdog » Thu Mar 15, 2012 4:24 pm

You gave me exactly what I was needing. Thank you.

I'll have to finish this little wordfile project tomorrow, as it is time to go prepare dinner for my family, and then have some family time.

I'm curious, though, if anyone else will be interested in it when I'm done. I'm working on a wordfile for LESS (which is why it seems so similar to CSS, but it isn't the same, because it does functions, mixin's, and lots of other stuff that has to be "compiled" into a CSS file.)

There is still a lot of work to do, as the CSS wordfile I had to begin with (that came with UES) is lacking in how I do things, and I started by editing that. It will need to be updated with browser keywords for -webkit, -ms, -o, etc. as it only had the -moz keywords. That means there is a lot to do before I want to share it with the community. I've been "tolerating" the way the CSS files work for quite a long time, and recently decided to take a month off from actual coding to get started "upgrading" my "tools" that I use to work more properly. In doing so, I have created a more proper PHP wordfile, a more proper AHK wordfile, and now I'm working on CSS and LESS wordfiles. (Check http://lesscss.org/ for more info. I have a tool that compiles it into straight CSS.)
User avatar
rhapdog
Master
Master
 
Posts: 272
Joined: Tue Apr 01, 2008 10:02 am
Location: Mississippi, USA

Re: Need help on creating a wordfile for LESS

Postby spookd » Thu Mar 22, 2012 5:53 am

So ... did you manage to create a wordfile for LESS? I'd love to have it. :)!
spookd
Newbie
 
Posts: 1
Joined: Thu Mar 22, 2012 5:50 am

Re: Need help on creating a wordfile for LESS

Postby rhapdog » Thu Mar 22, 2012 8:14 am

Yes, I managed to create it. Since you are eager to have it, I shall supply it. ASCII and ye shall receive, and all that.

I have included a readme file in the zip archive, which explains why you need UE 17+ to make use of it, and why I don't have CSS 3 included in it yet, and other stuff.

Perhaps someone will finish it by adding CSS 3 into a new color group?
Attachments
wordfile_less.zip
(7.2 KiB) Downloaded 132 times
User avatar
rhapdog
Master
Master
 
Posts: 272
Joined: Tue Apr 01, 2008 10:02 am
Location: Mississippi, USA


Return to Syntax Highlighting