Menu ▾ ▴

User Defined Language Limitations?

2009-08-06
2012-11-14
  • Balderstrom

    Balderstrom - 2009-08-06

    There appears to be a couple things that are not possible with User Defined Languages, as far as I can tell.
    1-) Unable to customize what is or is not a Number, ie: -100 will not get hilighted, nor 0x01
    2a) Unable to customize a highlight for Strings, i.e. "Foo", or 'foo',
    2b) You can _approximate_ this with a keyword: ", and [x] Prefix mode, but since you likely need to use ( ) as an Activated Operator, then when a bracket is encountered after a quote, the hilight will stop. As well when a space is encountered i.e. "Foo Bar", then the hilight stops.

    3) Multiline Coments:  /* */ multiline comment seems to be broken completely, in UserDefined Lang's and others like C. Notepad++ frequently fails to recognize when to stop colorizing text as a comment, and will continue coloring all the way to the end of the file as Green (comment). Even after a valid stop */ is encountered.

    As well NotePad++ believes a string that contains ".*/" is a stop comment hilight.

    4) Single Line Comment: When using single line comment character, such as ";"
    Notepad++ will fail to recognize that: ";foobar" is a comment, you must use a space, "; foobar"
    You are unable to use the same character twice, i.e. you cannot do:
    ";" and ";;" as 2 types of Single Line Comment. NotePad++ will only recognize one of them.

    The inability to define strings, with spaces in them, and to have NotePad++ ignore "/*" "*/" when contained within a string really limits the User Defined Language settings.

    The number issue, makes the hilighter perform so oddly as to just not use that setting as is.

    I am new to NotePad++, if any of these are fixable with an .xml or .ini change, I'd love to know.

     
    • cchris

      cchris - 2009-08-07

      They are fixable with .cxx changes to LexUser.cxx. It needs a fair amount of fixes. The hardest part is to evolve the UI in a consistent way. Someone has to tackle it - why not you, why not m?

      CChris