From 5ec72f8723d795d0b02d7e9ebb9f555f0c7e6a2e Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Sun, 2 Aug 2026 23:43:08 -0300 Subject: rebrand to notevi: one CLI over the jj sidecar vr and vrsite become a single binary. vrsite/ folds into a web package in one module (0x4200.cafe/notevi); "notevi web" serves and exports exactly what vrsite did, and "notevi read/grep/note/query" is unchanged. The sidecar is renamed with it: notevi_log, notevi-log.jsonl, and the description "private: notevi log". The pre-rebrand names are still recognized, so an old repository opens and reads; it is renamed in place on the first write, or up front with "notevi migrate DIR...". That rename cannot be a single mv inside jj run. jj only auto-tracks a *new* file in the run working copy below a size limit it does not take from the command line, so writing a whole log under a name the change has never held is silently dropped while jj reports success. ensureLogFile creates the file empty first and lets every later byte be a modification of a tracked file, which snapshots at any size; that also fixes the same latent bug when importing a large legacy vr-log.jsonl. Adds a bem-te-vi mark (favicon and nav brand) and a README. Co-Authored-By: Claude Opus 5 (1M context) --- web/assets/python.scm | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 web/assets/python.scm (limited to 'web/assets/python.scm') diff --git a/web/assets/python.scm b/web/assets/python.scm new file mode 100644 index 0000000..f64e673 --- /dev/null +++ b/web/assets/python.scm @@ -0,0 +1,50 @@ +; Python highlights, from tree-sitter/tree-sitter-python v0.25.0 +; queries/highlights.scm (MIT). Reordered for later-patterns-win, capture names +; mapped onto zed syntax keys, and the builtin-function #match? turned into +; #any-of?. The two casing heuristics stay regexes: nothing else can express +; "CONST_CASE" and "ClassName" over bare identifiers. + +["(" ")" "[" "]" "{" "}"] @punctuation.bracket +[";" "," "." ":"] @punctuation.delimiter +["-" "-=" "!=" "*" "**" "**=" "*=" "/" "//" "//=" "/=" "&" "&=" "%" "%=" + "^" "^=" "+" "->" "+=" "<" "<<" "<<=" "<=" "<>" "=" ":=" "==" ">" ">=" + ">>" ">>=" "|" "|=" "~" "@=" "and" "in" "is" "not" "or" "is not" + "not in"] @operator + +["as" "assert" "async" "await" "break" "class" "continue" "def" "del" "elif" + "else" "except" "exec" "finally" "for" "from" "global" "if" "import" "lambda" + "nonlocal" "pass" "print" "raise" "return" "try" "while" "with" "yield" + "match" "case"] @keyword + +((identifier) @constructor + (#match? @constructor "^[A-Z]")) +((identifier) @constant + (#match? @constant "^[A-Z][A-Z_0-9]*$")) +((identifier) @variable.special + (#any-of? @variable.special "self" "cls")) + +(type (identifier) @type) +(attribute attribute: (identifier) @property) +(function_definition name: (identifier) @function) +(call function: (identifier) @function) +(call function: (attribute attribute: (identifier) @function.method)) +((call function: (identifier) @function.builtin) + (#any-of? @function.builtin "abs" "all" "any" "ascii" "bin" "bool" + "breakpoint" "bytearray" "bytes" "callable" "chr" "classmethod" "compile" + "complex" "delattr" "dict" "dir" "divmod" "enumerate" "eval" "exec" "filter" + "float" "format" "frozenset" "getattr" "globals" "hasattr" "hash" "help" + "hex" "id" "input" "int" "isinstance" "issubclass" "iter" "len" "list" + "locals" "map" "max" "memoryview" "min" "next" "object" "oct" "open" "ord" + "pow" "print" "property" "range" "repr" "reversed" "round" "set" "setattr" + "slice" "sorted" "staticmethod" "str" "sum" "super" "tuple" "type" "vars" + "zip" "__import__")) + +[(integer) (float)] @number +[(none) (true) (false)] @constant +(string) @string +(escape_sequence) @string.escape +(interpolation "{" @punctuation.special "}" @punctuation.special) + +(decorator "@" @attribute) +(decorator [(identifier) (attribute)] @attribute) +(comment) @comment -- cgit v1.3