Add python code macros and spelling

This commit is contained in:
E Dunbar 2025-05-15 14:24:16 -05:00
parent ed44ef8755
commit 4be821f08d
6 changed files with 7754 additions and 7291 deletions

View file

@ -47,6 +47,7 @@ module.exports = grammar({
$.class, $.class,
$.macro, $.macro,
$.reader, $.reader,
$.py,
), ),
_form: $ => seq(optional($.sugar), choice($._identifier, $._sequence, $._string)), _form: $ => seq(optional($.sugar), choice($._identifier, $._sequence, $._string)),
@ -225,6 +226,14 @@ module.exports = grammar({
repeat($._element), repeat($._element),
')', ')',
), ),
py: $ => seq(
'(',
choice('py', 'pys'),
'"',
$.code,
'"',
')',
),
module_import: $ => seq( module_import: $ => seq(
choice( choice(
@ -308,6 +317,8 @@ module.exports = grammar({
']', ']',
), ),
code: _ => /[^"]*/,
_variable: $ => choice( _variable: $ => choice(
$.symbol, $.symbol,
$.dotted_identifier, $.dotted_identifier,

View file

@ -126,6 +126,12 @@
(discard) (discard)
] @comment ] @comment
[
(string)
(bracket_string)
(comment)
] @spell
; Keywords ; Keywords
(expression (expression
. .
@ -278,11 +284,18 @@
. .
(symbol) @function.macro (symbol) @function.macro
(#any-of? @function.macro (#any-of? @function.macro
"do" "do-mac" "eval-and-compile" "eval-when-compile" "py" "pys" "pragma" "quote" "quasiquote" "do" "do-mac" "eval-and-compile" "eval-when-compile" "pragma" "quote" "quasiquote" "unquote"
"unquote" "unquote-splice" "setv" "setx" "let" "global" "nonlocal" "del" "annotate" "deftype" "unquote-splice" "setv" "setx" "let" "global" "nonlocal" "del" "annotate" "deftype" "."
"." "unpack-iterable" "unpack-mapping" "with" "get-macro" "local-macros" "export" "get" "cut" "unpack-iterable" "unpack-mapping" "with" "get-macro" "local-macros" "export" "get" "cut"
"assert")) "assert"))
(py
.
[
"py"
"pys"
] @function.macro)
; Tokens ; Tokens
((symbol) @operator ((symbol) @operator
(#any-of? @operator (#any-of? @operator

3
queries/injections.scm Normal file
View file

@ -0,0 +1,3 @@
(py
(code) @injection.content
(#set! injection.language "python"))

46
src/grammar.json generated
View file

@ -85,6 +85,10 @@
{ {
"type": "SYMBOL", "type": "SYMBOL",
"name": "reader" "name": "reader"
},
{
"type": "SYMBOL",
"name": "py"
} }
] ]
}, },
@ -1953,6 +1957,44 @@
} }
] ]
}, },
"py": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "py"
},
{
"type": "STRING",
"value": "pys"
}
]
},
{
"type": "STRING",
"value": "\""
},
{
"type": "SYMBOL",
"name": "code"
},
{
"type": "STRING",
"value": "\""
},
{
"type": "STRING",
"value": ")"
}
]
},
"module_import": { "module_import": {
"type": "SEQ", "type": "SEQ",
"members": [ "members": [
@ -2238,6 +2280,10 @@
} }
] ]
}, },
"code": {
"type": "PATTERN",
"value": "[^\"]*"
},
"_variable": { "_variable": {
"type": "CHOICE", "type": "CHOICE",
"members": [ "members": [

76
src/node-types.json generated
View file

@ -130,6 +130,10 @@
"type": "macro", "type": "macro",
"named": true "named": true
}, },
{
"type": "py",
"named": true
},
{ {
"type": "reader", "type": "reader",
"named": true "named": true
@ -165,6 +169,11 @@
] ]
} }
}, },
{
"type": "code",
"named": true,
"fields": {}
},
{ {
"type": "dictionary", "type": "dictionary",
"named": true, "named": true,
@ -241,6 +250,10 @@
"type": "macro", "type": "macro",
"named": true "named": true
}, },
{
"type": "py",
"named": true
},
{ {
"type": "reader", "type": "reader",
"named": true "named": true
@ -343,6 +356,10 @@
"type": "macro", "type": "macro",
"named": true "named": true
}, },
{
"type": "py",
"named": true
},
{ {
"type": "reader", "type": "reader",
"named": true "named": true
@ -553,6 +570,10 @@
"type": "macro", "type": "macro",
"named": true "named": true
}, },
{
"type": "py",
"named": true
},
{ {
"type": "reader", "type": "reader",
"named": true "named": true
@ -685,6 +706,10 @@
"type": "parameter_list", "type": "parameter_list",
"named": true "named": true
}, },
{
"type": "py",
"named": true
},
{ {
"type": "reader", "type": "reader",
"named": true "named": true
@ -843,6 +868,10 @@
"type": "parameter_list", "type": "parameter_list",
"named": true "named": true
}, },
{
"type": "py",
"named": true
},
{ {
"type": "reader", "type": "reader",
"named": true "named": true
@ -950,6 +979,10 @@
"type": "macro", "type": "macro",
"named": true "named": true
}, },
{
"type": "py",
"named": true
},
{ {
"type": "reader", "type": "reader",
"named": true "named": true
@ -1072,6 +1105,10 @@
"type": "parameter_list", "type": "parameter_list",
"named": true "named": true
}, },
{
"type": "py",
"named": true
},
{ {
"type": "reader", "type": "reader",
"named": true "named": true
@ -1247,6 +1284,21 @@
] ]
} }
}, },
{
"type": "py",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "code",
"named": true
}
]
}
},
{ {
"type": "reader", "type": "reader",
"named": true, "named": true,
@ -1334,6 +1386,10 @@
"type": "macro", "type": "macro",
"named": true "named": true
}, },
{
"type": "py",
"named": true
},
{ {
"type": "reader", "type": "reader",
"named": true "named": true
@ -1464,6 +1520,10 @@
"type": "macro", "type": "macro",
"named": true "named": true
}, },
{
"type": "py",
"named": true
},
{ {
"type": "reader", "type": "reader",
"named": true "named": true
@ -1572,6 +1632,10 @@
"type": "macro", "type": "macro",
"named": true "named": true
}, },
{
"type": "py",
"named": true
},
{ {
"type": "reader", "type": "reader",
"named": true "named": true
@ -1693,6 +1757,10 @@
"type": "macro", "type": "macro",
"named": true "named": true
}, },
{
"type": "py",
"named": true
},
{ {
"type": "reader", "type": "reader",
"named": true "named": true
@ -1911,6 +1979,14 @@
"type": "macros", "type": "macros",
"named": false "named": false
}, },
{
"type": "py",
"named": false
},
{
"type": "pys",
"named": false
},
{ {
"type": "readers", "type": "readers",
"named": false "named": false

14890
src/parser.c generated

File diff suppressed because it is too large Load diff