SciTE Project Manager in SVN
June 29, 2007
I have committed the project manager and support scripts to SVN (scite-st branch). The name however is a bit misleading because I have yet to write a project_manager.lua script…Right now there are file_browser.lua, ctags_browser.lua, and svn_browser.lua scripts.
Screenshots: file_browser, ctags_browser
The SVN browser could probably use some improvements to make it act more like TortoiseSVN. Right now it can show you diffs and logs, and execute custom commands via an input box and the output is shown to you in another dialog (in real time).
The file browser is quite straightforward in terms of use.
The ctags browser accepts either no input or a path to a ctags file. If no input is given, it runs ctags on the current file. You will probably have to edit ctags_browser.lua to add file extensions and languages, since I have only recognized lua, ruby, and some C++. Oh, and I got the icons from Anjuta.
Please see the documentation for requirements, installation, customization, etc. I also need to write some better documentation, but this utility is in the testing phase… The README.txt describes the extras added to SciTE for the PM.
I think the biggest disappointment will be that this is Linux only. The reason for this is that the project manager is coded in GTK, and I know of no way to compile SciTE on windows with GTK. It also doesn’t help that I have absolutely zero experience writing windows GUI code, so I couldn’t even begin to port the GTK version. I will welcome any outside efforts though.
Teaser
June 24, 2007
SciTE-st Release 5
June 24, 2007
A pretty serious flaw has been found in my implementation of the new SCI_GETLEXERLANGUAGE and SCI_GETSTYLENAME Scintilla messages that have a tendency to crash SciTE at times. I have fixed this in release 5, and the code has also been updated to official SciTE/Scintilla 1.74. (Release 4 had the release candidate code.) I strongly encourage you to upgrade to this release.
SciTE-tools binaries deprecated, Lua 5.0 support dropped
June 19, 2007
With the release of SciTE 1.74 containing the essential OnKey Lua Extension function, I can stop releasing SciTE-tools binaries (NOT to be confused with SciTE-st). This means changes in SVN trunk. If you keep a local copy, you’ll notice it now contains a single directory: scripts. I have removed the properties files and customized source directory because I want trunk to focus on what the project was originally intended to be: tools for SciTE, not a fork itself. Also, please read the new README.txt because it contains some good information on requirements, installation, usage, etc.2
SciTE-st Release 4
June 14, 2007
2It is with pleasure that I am releasing the 4th version of SciTE-st, the SciTE that supports dynamic Lua lexers. Notable new features:
- Lexers are easier than ever to embed (See this post on the announcement)
- A basic errorlist.lua lexer that detects generic errors for now.
- Double-click support in the output pane via scripts/scite/decoder.lua
- New SCI_GETSTYLENAME Scintilla message that retrieves the name of the token associated with the style under the caret. modules.scite.snippets.show_scope (Alt+I key shortcut) utilizes this. Now you don’t have to memorize style numbers. You can use token names!2
Notice on Deprecation of Lua 5.0 scripts
June 11, 2007
For those of you subscribed to the SciTE mailing list, you’re probably aware that I’m pushing for my upgrade of the Lua extension to Lua 5.1 to be included in the SciTE 1.74 release. If this indeed happens (which there is a good possibility), I will be discontinuing support for the Lua 5.0 version of my scripts (currently in trunk) and replacing them with their Lua 5.1 counterparts. The main difference between the two is that the Lua 5.1 version utilizes the Lua 5.1 package system. Modules are contained in the ‘modules’ global table. This can be seen in the LuaDoc for the modules (link on the right). More information to come.2
Updates to Lexer API
June 8, 2007
2I know last time I claimed languages were easier to embed than ever with the last lexer API update, but I’m going to claim the same thing with this update. Now there is no need to fiddle around with the EmbeddedIn table. All you have to do is create your start and end tokens, call the ‘make_embeddable’ function, and call ‘embed_language’ (changed from ‘add_language’). I don’t think it can get much easier than that.
In addition to that, a new [global] LoadTokens function is mandatory for loading the tokens used to construct matching patterns. So instead of constructing: lexer.Token = foo + bar + baz, where foo, bar, and baz are tokens, just ‘add_token()’ them, and Token as well as Tokens are constructed for you behind the scenes. There is no need to explicitly declare them. You can access them however, if necessary.
A result of having ‘add_token’ is an accessible table of tokens for each lexer: TokenPatterns. This gives an incredible amount of flexibility for embedded lexers. This can be seen in the new php.lua lexer. It updates HTML’s tokens allowing embedded PHP (inside strings for example), and then rebuilds the patterns — all without touching the html.lua lexer or adding anything extra to it. See for yourself just how easy it is.
There are other minor miscellaneous additions/changes that can be viewed in the CHANGELOG.txt, and also please see the lexer documentation (link on the sidebar). Both have been updated.
All changes are available from SVN. I’ll have binary downloads available soon after I do some more testing/debugging/etc.2
SciTE-st Shows its Beta-ness…Again
June 7, 2007
2222The lexer API will be updated again slightly. Token and Tokens will no longer need to be created manually, but a new function LoadTokens will be necessary with its add_token function complement (like LoadStyles). This will make embedded language implementation behind the scenes more seamless — especially having embedded languages in tokens like strings. (Related to issue 20)
More information later.
Updated Lexers
June 6, 2007
All lexers have been updated (if you haven’t noticed) with regard to the new ‘delimited_range’ function provided by lexer.lua. Also, there have been some miscellaneous additions and fixes.2
