| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
* genvim.txr (txr_num): Somehow, in spite of all the complexity
and years of maintenance on this file, it generates syntax
files that fail to recognize decimal integer tokens and color
them like floating-point and other tokens like hex and octal.
We now add (back?) the rule for that.
|
|
|
|
|
|
| |
* genvim.txr (tl_ident): Remove one rule, and make
sure the other matches an optional : or #:
(txr_braced_ident): Match optional : or #: prefix.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* parser.l (remove_char): New static function.
(DIGSEP, XDIGSEP, NUMSEP, FLOSEP, XNUMSEP, ONUMSEP,
BNUMSEP, ONUM, BNUM): New named lex patterns.
(FLODOT): Use DIGSEP instead of DIG.
(ONUM): Use ODIG instead of [0-7].
(BNUM): Use BDIG instead of [0-1].
(grammar): New rule for producing NUMBER from decimal
token with commas based on BNUMSEP instead of BNUM.
This is a copy and paste so that the BNUM rule doesn't
deal with the comma removal, not to slow it down.
For the octal, binary and hex, we just switch to
BNUMSEP, ONUMSEP and XNUMSEP, so they all go through
one case.
Floating point numbers are also handled with a copy
pasted case using FLOSEP.
* tests/012/syntax.tl: New test cases.
* txr.1: Documented.
* genvim.txr (alpha-noe, digsep, hexsep, octsep, binsep): New
variables.
(txr_pnum, txr_xnum, txr_onum, txr_bnum, txr_num): Integrate
separating commas. Some bugs fixed in txr_num, some simplifications,
better txr_badnum pattern.
* lex.yy.c.shipped: Updated.
|
|
|
|
|
|
|
| |
* genvim.txr (txr_ign_json): Assign to Comment category,
otherwise only the start and end markers, and interior
bracketed material, is colored as a comment, with other
top-level items showing white.
|
|
|
|
|
|
|
|
|
| |
* genvim.txr (txr_ign_par, txr_ign_bkt, txr_ign_tok):
Regions placed under one name, txr_ign.
(list): Updated to include just txr_ign.
(txr_ign_par_interior,txr_ign_bkt_interior,
txr_ign_bra_interior): All combined under one name.
(txr_ign, txr_ign_json): Refer to just txr_interior.
|
|
|
|
| |
* genvim.txr: Changes to extend #; over JSON.
|
|
|
|
|
|
|
| |
* genvim.txr (txr_ign_par, txr_ign_bkt): Add ^ and @
as valid prefix characters so brackets or parens preceded
by these are commented out. Remove redundant txr_ign_bkt
region that is identical to the previous line.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The last round of changs. The txr_bracevar
group is still handling bracket vars in their
entirety, including the @. Also square bracket
lists are not handled right.
* genvim.txr (txr-elem): Add txr_bracket and
txr_bracevar.
(txr_bracevar): Don't match @ sigil, and mark
as contained group.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The previous commit breaks the syntax coloring
of the interior of quasiliterals. That is
now addressed.
* genvim.txr (txr-qelem): New variable holding
the elements of a quasiliteral which follow
the @ sigil. These items were previously listed
as the contained items of txr_quasilit. Now they
become nextgroup elements of tl_qat.
(tl_qat): New match group representing the special
items in a quasiliteral. It matches the sigil,
and then the txr-qelem items via nextgroup.
(tl_bracevar): Renamed to txr_qbracevar, since
it targets the brace variable variant contained in
quasiliterals.
(txr_mlist,txr_mbracket): No longer used; removed.
(txr_quasilit): Now just contains txr_qat.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I noticed that in some Vim color schemes, the @
in @( ) is colored the same as the parentheses,
whereas in @abc, it is colored differently from
the identifier (and different from parentheses).
This patch fixes things so that the @ sigil is
in the Special category, rather than Delimiter,
almost everywhere.
* genvim.txr (txr-elem): New variable, for holding
names of regions which follow the @ in the TXR
language. Used in definition of txr_at.
(bvar, dir, list): Remove the txr_mlist
and txr_mbracket regions.
(txr_at): New match group defined, which matches
the @ sigil in TXR, followed by various elements
using the nextgroup mechanism. txr_at is already
assigned to a highlight category via a previously
dangling entry.
(txr_error,txr_atat,txr_comment,txr_contin,
txr_char,txr_error,txr_char,txr_regdir,txr_variable,
txr_splicevar,txr_metanum,txr_directive):
These match groups don't match the leading @
sigil any more and are marked contained. They
activate as the nextgroup items in txr_at,
allowing them to be colored differently.
(tl_error): New group. split off from txr_error.
We don't want to to recognize this category
after the @ in TXR because @#... is the old-style
comment.
(tl_ident): Don't try to match leading @. This is
useless because there is a more specific match
via txr_metaat later.
(txr_quote, txr_metaat): Mark these not contained
in Lisp so they activate at the top level.
(txr_directive): Don't match leading @. This now
activates as a nextgroup item in txr_at. Thus
directives can have a differently colored @.
(txr_mlist, txr_mbracket): These are now unconditionally
contained, and are used only in txr_quasilit.
I am otherwise leaving quasiliterals alone in this
patch; it will need the same treatment for @ to be
colored seprately inside quasiliterals.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Vim's handling of multi-line Lisp strings is glitchy. We are
contributing to it by tryign to match the backslash-newline as
an escape sequence.
As a result of this change, Vim is less confused. Indentation
is still incorrect after some multi-line strings, but I'm not
seeing the discrepancy between the behavior of the visual
parentheses matching, and the % parentheses jump.
I'm able to navigate around in the stdlib/getopts.tl code.
* genvim.txr (chesc): Remove the backslash-newline from the
list of character escapes.
(txr_string, txr_quasilit, txr_regex, tx_regex): Use skip= to
recognize the backslash-newline sequence as part of the
literal.
|
| |
|
|
|
|
|
|
|
|
| |
* genvim.txr (jlist): Include txr_junqtok. (txr_junqtok): New
region. Provides okay-ish match for ~ followed by
unparenthesized Lisp item. For some reason, keywords aren't
lit up specially, but it's still an improvement over just
flagging everything as an error.
|
|
|
|
|
|
| |
* genvim.txr (bvar): Add tl_regex as a constituent.
This occurs in quasiliteral pattern matching syntax,
like `...@{a #/regex}...`.
|
|
|
|
|
|
| |
* genvim.txr (list): Add txr_junqbkt: unquoted bracket.
(txr_junqlist): Support optional # for vector syntax.
(txr_junqbkt): New region for unquoted bracket expressions.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* genvim.txr (ws, jlist, jsonkw, jerr, jpunc, jesc, juesc,
jnum): New variables.
(txr_circ): Move down; this somehow clashes with JSON regions
beginning with #, so that even if we include txr_circ in JSON
regions, it doesn't work properly.
(txr_jerr, txr_jpunc, txr_jesc, txr_juesc, txr_jnum): Define
using variables.
(txr_jkeyword): Switch to regex match instead of keyword. Vim
8.0 does not recognize keywords when they are glued to #J, as
in #Jtrue, even though #J is excluded from the region.
(txr_jatom): New region.
(txr_jarray, txr_jhash): Define using jlist variable for
contained items.
(txr_jarray_in, txr_jhash_in): New regions for the inner
parts without the #J.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* genvim.txr (dig19, bvar, dir, list): New variables.
(txr_bracevar, tl_bracevar, tl_directive, txr_list,
txr_bracket, txr_mlist_txr_mbracket): Use variable to specify
common contents. JSON stuff added.
(txr_ign_tok): Specify contents using @list.
(txr_jkeyword, txr_jerr, txr_jpunc, txr_jesc, txr_juesc,
txr_jnum): New matches.
(txr_junqlist, txr_jstring, txr_jarray, txr_jhash): New
regions.
|
|
|
|
|
|
|
|
|
|
| |
Problem is, there is no way to assert that txr_ign_tok
should be colored as a comment, overriding the non-transparent
item that it contains.
* genvim.txr (txr_list, txr_bracket, txr_mlist): Add new
contained item, txr_ign_tok.
(txr_ign_tok): New region.
|
|
|
|
|
|
|
|
|
|
| |
The txr_bracevar region is not appropriate for quasiliterals,
because it contains txr_regex.
* genvim.txr (tl_bracevar): New syn region, based on copying
txr_bracevar and changing it so it contains tl_regex and not
txr_regex.
(txr_quasilit): Contain tl_bracevar rather than txr_bracevar.
|
|
|
|
|
|
| |
* genvim.txr (txr_error, txr_list, txr_ign_par, txr_ign_bkt):
Add T and N to the pattern that recognises #H, #S and #R,
so that tree and node literals are handled.
|
|
|
|
|
|
| |
* genvim.txr: the tl.vim file does not require a highlighting
association between txr_keyword and Keyword, since it lacks
the txr_keyword match group.
|
|
|
|
|
| |
* genvim.txr (generate): Use a single, undivided @(output)
block instead of multiple blocks with :continue.
|
|
|
|
|
|
|
| |
* genvim.txr (tl-sym): Recognize the contains symbol and
render it as the string "contain[s]". Vim thinks that
contains is reserved a keyword, anywhere in the syn keyword
line, and throws an error.
|
|
|
|
|
|
|
|
|
|
|
| |
* genvim (iskeyword): Remove the : character from being a
symbol constituent. This doesn't work well with tags, which
are oblivious to packages. We would not only have to make
tags.tl deal with packages, but in the tags file we would have
to duplicate every entry with and without the package prefix.
It doesn't make a lot of sense. Plus, packages themselves
are tags, and if we put the cursor on the package part of a
qualified symbol, we can jump to the package.
|
|
|
|
|
| |
* genvim.txr (comments): new variable. Generate "set comments"
command for TXR and TXR Lisp.
|
|
|
|
|
|
| |
* genvim.txr: generate the txr_hashbang match in both txr.vim
and tl.vim, not only txr.vim. Use Vim's \% regex operator
to match only in the first line of a file.
|
|
|
|
|
| |
* genvim.txr: In the Vim syntax file comment's example .vimrc
lines, include .tlo files, which are just TXR Lisp syntax.
|
|
|
|
| |
* genvim.txr (iskeyword): add % character.
|
|
|
|
|
| |
* genvim.txr (iskeyword): add ^ character.
Now r^ and others are colorized properly.
|
|
|
|
|
|
|
|
|
|
|
| |
* genvim.txr (txr_pnum): New match; matches a superset of
the #x, #o and #b literals with the inclusion of trailing
alphanumeric junk. Highlighted as Error.
(txr_xnum, txr_onum, txr_bnum): New match categories, formed
by renaming the previous #x, #o and #b matches. These are
contained in txr_pnum, highlighted as Number.
(txr_bracevar, txr_directive, txr_list, txr_bracket,
txr_mlist, txr_mbracket): Include txr_pnum.
|
|
|
|
|
|
|
| |
* genvim.txr (txr_error): New match in this category for #
followed by something other than H, S or R. Some characters
other than these are valid after #, but are covered by
explicit matches that occur later.
|
|
|
|
|
|
|
| |
* genvim.txr (tl_ident): Fix the incorrect match which allows
things beginning with # to be categorized as identifier
tokens. The new match reflects the true original intent: the
match must not begin with #, but may contain #.
|
|
|
|
|
|
|
| |
* genvim.txr (txr_buf_error, txr_buf_interior): New matches.
(txr_list, txr_bracket, txr_mlist, txr_mbracket): Now also
contain txr_buf.
(txr_buf): New region, in the new txr_string matchgroup.
|
|
|
|
|
|
|
| |
* genvim.txr (txr_num): Move the syn match definitions for
hex, octal and binary integer tokens after tl_ident, which is
a more general match that matches them also, and causes them
to be colorized as symbols rather than numbers.
|
|
|
|
|
|
| |
* genvim.txr: do syntax coloring for symbols that are
defined as FFI types or are FFI type operators.
Also, include type operators in the Vim lispwords list.
|
|
|
|
|
|
|
|
|
| |
* genvim.txr: remove code which probes a few symbols with
boundp. The point of this is to stimulate some autoloading,
but it is based on a misunderstanding. The symbols in the
lisplib.c autoload module are all interned. When the usr
package is walked, they all get checked with boundp,
and all all library autoloads are triggered.
|
|
|
|
|
|
|
|
|
| |
* genvim.txr (txr_circ): New match. Link to
Special highlight group.
(txr_bracevar, txr_directive, txr_list, txr_mlist,
txr_mbracket): Introduce txr_circ into these regions.
* txr.vim, tl.vim: Regenerated.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* parser.c (parser_circ_ref): Don't generate the
circular reference if circular suppression is in
effect.
* parser.h (struct parser): New member, circ_suppress.
We use this for suppressing the generation of
circular #n# references in erased objects.
* parser.l (grammar): Scan #; producing HASH_SEMI token.
* parser.y (HASH_SEMI): New token.
(hash_semis_n_expr, hash_semis_i_expr, ignored_i_exprs,
ignored_n_exprs): New nonterminals, needed for supporting
the use of #; in front of top-level forms.
(spec): Use hash_semis_n_expr and hash_semis_i_expr
instead of n_expr and i_expr.
(r_expr): Support object erasure within nested syntax.
(yybadtoken): Handle H_SEMI token.
(parse): Initialize new circ_suppress member of parser
struct to zero.
* txr.1: Documented.
* genvim.txr (txr_ign_par, txr_ign_bkt, txr_ign_par_interior,
txr_ign_bkt_interior): New regions for colorizing erased
objects (partial support).
(txr_list, txr_bracket, txr_mlist, txr_mbrackets): Include
erased objects by including regions txr_ign_par and
txr_ign_bkt.
* txr.vim, tl.vim: Regenerated.
|
|
|
|
|
|
| |
* genvim.txr (txr_list): Rewrite start delimiter regex.
* txr.vim, tl.vim: Regenerated.
|
|
|
|
|
|
| |
* genvim.txr: Let's not get rid of this just from
the instructions comment, but from the internals.
txl-* replaced with tl-*.
|
|
|
|
|
|
| |
* genvim.txr: "INSTALL-HOWTO" comment still talks about
.txl files, an experimental suffix we didn't go with.
Now fixed to .tl.
|
|
|
|
|
|
|
|
| |
* genvim.txr (txr_splicevar): This match must be contained.
(txr_metanum): Must be contained in TXR, need not be contained
in TXR Lisp.
* txr.vim, tl.vim: Regenerated.
|
|
|
|
|
|
| |
* genvim.txr: Add missing single, first, last and other output
repeat modifiers. Removing rep, since it's scraped from the
table registration in match.c.
|
|
|
|
|
|
|
| |
* genvim.txr: Use new mboundp to check for macros, and
special-operator-p to detect operators. fboundp doesn't report
them any more. Also, :postinit must be included among
lispwords.
|
|
|
|
|
| |
* genvim.txr: Indent new, lnew, meth, umeth
and usel forms like function calls.
|
|
|
|
|
| |
* genvim.txr: Some operators should indent like functions.
We don't want these in lispwords.
|
|
|
|
|
|
|
| |
* eval.c (eval_init): Bind macro-time to op_error.
* genvim.txr: No longer manually add macro-time to
txl-orig-sym.
|
|
|
|
|
| |
* genvim.txr (txl-orig-sym, lispwords): New variable.
(generate): Generate Vim set lispwords command.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* eval.c (eval_init): Register package-alist, package-name
and package-symbols intrinsics.
* genvim.txr: Rather than scanning C sources for TXR Lisp
symbols, iterate over the packages and their symbols,
collecting anything which has a binding or is self-evaluating.
To get the stdlib symbols, we trigger the autoloads by doing
boundp queries on a few symbols.
* txr.1: Document package-alist, package-name and
package-symbols.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* RELNOTES: Updated.
* configure, txr.1: Bumped version and date.
* share/txr/stdlib/ver.tl: Likewise.
* genvim.txr: Scan struct.c, path-test.tl and struct.tl files.
* txr.vim, tl.vim: Regenerated.
|