The array length code is weird: the element type is uint32_t but opsuffs_len appears to be assuming uint16_t. If the code is doing the obvious 'elements of an array' then use std::size.
style can be declared inside the loop where its assigned.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
There are some uses of is* functions from ctype.h that are not protected by IsASCII such as isdigit(sc.chNext) where chNext is a Unicode code point so may be outside the range for isdigit. This can lead to crashes as described by https://drewdevault.com/2020/09/25/A-story-of-two-libcs.html .
There are occurrences of sc.ch != EOF in the lexer but sc.ch should never be EOF (-1). If it ever is then that is a bug.
The x.jl.styled file was not reproduced by this code: on the comment line, it now styles the line end (\n or \r\n) as 0 instead of 1. While this is sensible, its a discrepancy so I wanted to check that it was deliberate.
Updated to match Lexilla 5.x: using namespace Lexilla;, ILexer5, lvRelease5.
There were 2 unused functions that I removed: IsJuliaReservedOperator and isHexa.
Moved SCLEX_JULIA to 133 to avoid clash.
Added other build files, change log entry, warning suppressions, SciTE.properties for example file and git attributes.
There's a problem with the properties defined by this lexer. A naming convention prefixes names so the don't clash. Julia lexer properties should start with "lexer.julia." and Julia folding properties should start with "fold.julia.". There are some legacy and shared properties that do not follow this convention but all new properties should.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi. thanks for merging the Julia Lexer! Is it better that I open a Pull-Request on github to address the remaining points? I would prefer as I am more familiar with git.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
It will not be possible to integrate this until after Scintilla 5.0 is complete.
There are some warnings and errors from different compilers and linters - Visual C++, g++, clang++, and cppcheck on Windows 10:
uintisn't a standard type . https://en.cppreference.com/w/cpp/language/typesThe array length code is weird: the element type is uint32_t but opsuffs_len appears to be assuming uint16_t. If the code is doing the obvious 'elements of an array' then use std::size.
stylecan be declared inside the loop where its assigned.Hi,
Thanks for reviewing! This is an old version of the file, here is the updated patch (attached).
Thanks for the update. This version has some unused variables and functions. Here are the warnings.
Hi, here is the new patch with the warnings corrected (and a small addition of a new keyword list).
While there are still some issues, Julia.2.patch+Julia.3.patch have been committed as
https://github.com/ScintillaOrg/lexilla/commit/6ee6b086a1920fdafe3af41eecbd865d52162ec7
There are some uses of is* functions from ctype.h that are not protected by IsASCII such as
isdigit(sc.chNext)where chNext is a Unicode code point so may be outside the range for isdigit. This can lead to crashes as described by https://drewdevault.com/2020/09/25/A-story-of-two-libcs.html .There are occurrences of
sc.ch != EOFin the lexer but sc.ch should never be EOF (-1). If it ever is then that is a bug.The x.jl.styled file was not reproduced by this code: on the comment line, it now styles the line end (\n or \r\n) as 0 instead of 1. While this is sensible, its a discrepancy so I wanted to check that it was deliberate.
Updated to match Lexilla 5.x:
using namespace Lexilla;,ILexer5,lvRelease5.There were 2 unused functions that I removed:
IsJuliaReservedOperatorandisHexa.Moved SCLEX_JULIA to 133 to avoid clash.
Added other build files, change log entry, warning suppressions, SciTE.properties for example file and git attributes.
Lexilla is now a separate project on GitHub https://github.com/ScintillaOrg/lexilla
There's a problem with the properties defined by this lexer. A naming convention prefixes names so the don't clash. Julia lexer properties should start with "lexer.julia." and Julia folding properties should start with "fold.julia.". There are some legacy and shared properties that do not follow this convention but all new properties should.
Hi. thanks for merging the Julia Lexer! Is it better that I open a Pull-Request on github to address the remaining points? I would prefer as I am more familiar with git.
Lexilla has moved to https://github.com/ScintillaOrg/lexilla so that is where issues should go.
Is there sample julia.properties to download/use?
No properties file for Julia has been contributed.
Thanks. Hope someone can contribute.