| Age | Commit message (Collapse) | Author | Files | Lines |
|
Caching lexers causes lexer tables to be constructed once and
reused during each HIGHLIGHT event. Additionally it allows to
modify the lexer used for syntax highlighting from Lua code.
This is used for example for the syntax aware spellchecking
performed by the vis-spellcheck plugin.
|
|
vis{,-std}.lua:
* replace removed _TOKENSTYLES with _TAGS
* don't add default styles to the lexer. lexers no longer
define their own styles
filetype.lua: update path detection for scintillua 6.2
|
|
Rationale
A modern text editor usually includes tools for helping user
to avoid mistakes in texts. Those tools include spell checkers and
programming language integrations. Though vis explicitly states
that the full featured IDE is not a goal, implementing some of
the tools might be achieved using its Lua API. Unfortunatelly
the API misses the ability to start a process and to perform
a communication with it without completely blocking the editor UI,
which is crucial for any tool that performs background tracking of
the inserted text (e. g. language servers).
Implementation details
New feature introduces new API method: communicate. The method
start a new process and returns a handle to communicate with
the process instantly. The patch inserts stderr and stdout
file descriptors of the process to the pselect call of the main loop
used for reading user input to track the process state without
blocking the main loop until the process is finished.
Any changes in the process state cause the iteration of the main loop
and are being exposed to the Lua API as new event: PROCESS_RESPONSE.
|
|
|
|
|
|
- Resync the lexers with Scintillua
- Update the lexer readme
- Update `zenburn` theme to fix some highlighting issues
- lexers: redirect print function to vis:info()
- Fix support for custom style names
- As per error message "lexer.delimited_range() is deprecated, use lexer.range()".
- Remove remaining `lexer.delimited_range()` call
- Set syntax to `nil` if the file type has no matching lexer
- Updated Go lexer for Go 1.18.
- lexers/dsv: convert to new lexer format
(cherry picked from commit 9edbc3cd9ea1d7142b1305840432a3d2739e755a)
- lexers/gemini: disable legacy gemini lexer
This reverts commit 468f9ee1b027a7ce98b1a249fa1af5888feeb989.
It is in legacy format and of questionable quality. Ideally it
should be contributed upstream from where it will eventually
trickle down to us.
- lexers/git-rebase: convert to new lexer format
(cherry picked from commit 4000a4cc9ac4a4c2869dfae772b977a82aee8d8c)
- lexers/strace: convert to new lexer format
(cherry picked from commit e420451320d97eb164f5629c1bcfab0b595be29d)
- lexers/typescript: add new upstream lexer revision 28e2b60
(cherry picked from commit 7326e6deecdaa75fa94ae9ebdb653f9f907b33f2)
- use `package.searchpath` instead of a local `searchpath` function
- Restore `filetype: support filetype detection via hashbang`
- Remove redundant comment
- Restore gemini lexer
|
|
These are either accidentally global or unused variables. In the file
type pluging the mime type variable was wrongly scoped, meaning the
text/plain settings applied to all otherwise unknown files.
|
|
|
|
The color settings are currently stored in the `vis.lexers` table,
make sure it is not nil even when loading the lexer module (or one
of its dependencies e.g. lpeg) failed.
|
|
|
|
|
|
|
|
|
|
It is no longer possible to change the used syntax by assigning to the
`win.syntax = name` field, instead the function win:set_syntax(name)`
should be called.
The distinction between filetype and syntax lexer to use should probably
be clarified/cleaned up at some point.
|
|
|
|
|
|
|
|
Differentiate between the case where the module is not found and
the case where an error occured while loading it.
This should make it easier to debug cases in which there is a
Lua version mismatch between vis and lpeg.
|
|
|
|
|
|
|
|
|
|
The init event is emitted immediately after `visrc.lua` has been sourced, but
before any other events have occured, in particular the command line arguments
have not yet been processed.
Close #422
|
|
The editor core calls into the functions registered in the `vis.events`
table which then multiplex the events to all registered event handlers.
The first handler which returns a non `nil` value terminates event
propagation.
|
|
The following structure is adapted:
* visrc.lua entry point for all Lua code
* vis.lua only implements the Lua part of the core API
* vis-std.lua registers standard event handlers (e.g. syntax highlighting,
statusbar handling, theme changes etc). It is sourced from vis.lua.
* plugins/* non essential editor functionality, needs to be explicitly
enabled by loading it from visrc.lua
|
|
Also remove the lexers sub directory from the Lua search path.
As a result we attempt to open fewer files during startup:
$ strace -e open -o log ./vis +q config.h && wc -l log
In order to avoid having to modifiy all lexers which `require('lexer')`
we instead place a symlink in the top level directory.
$ ./configure --disable-lua
$ rm -rf lua
Should result in a source tree with most lua specifc functionality
removed.
|