[New Plugin] Scintillua++
This is a first release of Scintillua++ which adds nearly 70 new languages to Notepad++. For a full list of lexers see this list.
This is still in early development. This is not meant to replace or replicate current Notepad++ behavior. This does not function as a normal “external lexer” as most other do, such as being configurable through the Style Configurator.
- Download and extract the zip file (link below)
Scintillua++.dllto Notepad++'s plugin directory
- Copy the contents of the
configdirectory into Notepad++'s plugin config directory - most likely located under
Readme/code/github project: https://github.com/dail8859/ScintilluaPlusPlus
Oh my god ! It’s a terrific job you’ve done.
FINALLY! Much more sane way to manage and share lexers. THANK YOU ! Thank you! thank you!
This is just excellent, thank you so much for this, just one thing I have noticed so far is that if I have a tab open that is using Scintillua++ lexer and switch to another that is using the npp (Scintilla native) lexer then back to the tab using the Scitillua++ lexer I lose the folder margin, I can use the View->Hide Folder Margin twice to hide it and then show it and it returns.
Actually, the issue is not in general with the Scintillua++ lexer but with one in particular, the sass lexer for a .scss file, which from looking at the sass.lua file seems to inherit in some way from the css lexer css.lua and maybe that is the issue.
Thanks for the info. I will definitely look into it.
I believe the problem should be fixed now with the missing fold margin. The new release can be downloaded here:
Thanks for the update, works a treat now.
Now for some suggestions, and observations.
Set a lexer on file save, i.e. create a new file (default language as per npp settings) and then save the file with an extension of say .scss for the sass lexer, then the sass lexer should be applied as in effect the language has been updated by changing the file extension. ( I have already implemented this, I can let you have the updated code if required, but you already handle the FILESAVE notification and reload the config file if that has been edited, just need to apply the lexer if it is not the config file saved).
Have a menu option to apply a lexer to a file, so for example create a new file and then be able to set the lexer without having to save it. The same could be achieved by implementing 1. and saving the file with the desired extension, but say I just wish to create a temporary file but apply a lexer, it would be nice to be able to select one as per the language menu in npp. It should be assumed regardless of the config switch override that you wish to override the npp/scintilla built in lexer in this case.
I appreciate that this is still early in the development, just hoping my thoughts could help improve and already excellent implementation, as the ability to be able to in effect update the lexers by amending the relevant .lua file is so much more convenient than having to rebuild source code, and the fact that any changes made to the .lua file are then applied straight away as soon as it is saved to any open files is fantastic.
I will just have to disable the build step that copies the output files and overrides the .lua file changes I have made and have lost every time I have built the source. That’s my issue and not yours.
Set a lexer on file save
Yeah there are a few cases like this when the language needs rechecked.
I have already implemented this, I can let you have the updated code if required
Pull requests are always welcome.
Have a menu option to apply a lexer to a file
Definitely a good idea. This isn’t as straight forward as I would like it to be since new languages can be added/removed dynamically and some information may need pulled out of the internal Lua interpreter.
and have lost every time I have built the source
Ah yes if you are editing one of the lexers already built in then it will get copied over.
v1.1 has been released:
- 64bit support (thanks to @chcg)
- Fix config file not being properly reloaded
- Detect when files get renamed
- Better error reporting
Download (32 and 64bit): https://github.com/dail8859/ScintilluaPlusPlus/releases/tag/v1.1