hadronized / kak-tree-sitter

tree-sitter meets Kakoune
Other
76 stars 12 forks source link

Document highlight queries #171

Open postsolar opened 11 months ago

postsolar commented 11 months ago

A brief few words on which each one is supposed to mean wouldn't hurt. For example what's the difference between keyword.control.import and include is not obvious. If documentation already exists elsewhere, the comment in config.toml should link to it.

postsolar commented 11 months ago

Potential colorscheme contributors would need unambiguous (to the possible extent) mapping between languages, capture groups and KTS faces. Here's my first try. I left comments marked with ? where I don't myself understand the purpose of a group.

Details attribute -- "Class attributes, HTML tag attributes" per Helix docs comment -- Comments comment.block -- Block comments, like /* ... */ in JavaScript comment.line -- Single line comments, like // in JavaScript constant -- Constant values constant.builtin -- Various builtin constant values constant.builtin.boolean -- Booleans constant.character -- Characters constant.character.escape -- Escaped characters like \n, \r, etc constant.macro -- ? constant.numeric -- Numbers constant.numeric.float -- Floats constant.numeric.integer -- Integers constructor -- Constructors diff.plus -- Additions diff.minus -- Deletions diff.delta -- Modifications diff.delta.moved -- Renamed or moved files or changes embedded -- ? error -- Errors function -- Functions function.builtin -- Builtin functions function.macro -- Macros function.method -- Object methods (?) function.special -- "Preprocessor in C" per Helix docs hint -- Is this actually a common TS group? include -- ? info -- Is this actually a common TS group? keyword -- Keywords keyword.conditional -- ? keyword.control -- ? keyword.control.conditional -- Conditional keywords (if/else, cond, case, match, etc) keyword.control.except -- Duplicate with the one below? keyword.control.exception -- Exceptions-related keywords (try, catch, throw, etc) keyword.control.import -- Imports-related keywords (import, export, require, etc) keyword.control.repeat -- Looping-related keywords (for, while, etc) keyword.control.return -- Return statements keywords keyword.directive -- Preprocessor directives keyword.function -- Function declaration-related keywords (fn, func, etc) keyword.operator -- Operator keywords (&&, >=, etc) keyword.special -- ? keyword.storage -- "Keywords describing how things are stored" per Helix docs keyword.storage.modifier -- Keywords like const, mut, ref, static, etc keyword.storage.modifier.mut -- Keywords introducing mutable values keyword.storage.modifier.ref -- Keywords introducing references keyword.storage.type -- "The type of something" per Helix docs. Very vague IMO label -- ? load -- ? markup.bold -- Bold text markup.heading -- Heading text markup.heading.1 -- Heading size 1 text markup.heading.2 -- Heading size 2 text markup.heading.3 -- Heading size 3 text markup.heading.4 -- Heading size 4 text markup.heading.5 -- Heading size 5 text markup.heading.6 -- Heading size 6 text markup.heading.marker -- ? markup.italic -- Italic text markup.link.label -- Non-URL link references markup.link.text -- URL and image descriptions in links markup.link.url -- URLs pointed to by links markup.link.uri -- URIs pointed to by links (?) markup.list.checked -- Lists' checked items markup.list.numbered -- Numbered lists' items markup.list.unchecked -- Lists' unchecked items markup.list.unnumbered -- Unordered lists (?) markup.quote -- Quotes markup.raw -- Simple text (?) markup.raw.block markup.raw.inline markup.strikethrough -- Strike-through text namespace -- Namespaces operator -- Operators punctuation -- General punctuation punctuation.bracket -- Brackets, braces, etc punctuation.delimiter -- Commas, pipes, semicolons, etc punctuation.special -- ? special -- ? string -- Strings string.escape -- Escaped characters in strings (?) string.regexp -- Regular expressions string.special -- ? string.special.path -- Filesystem paths (?) string.special.symbol -- "Erlang/Elixir atoms, Ruby symbols, Clojure keywords" per Helix docs string.symbol -- how would this be different from the one above ? tag -- Tags in HTML, XML, etc tag.error -- ? text -- General text type -- Types type.builtin -- Builtin types type.enum.variant -- Enumerations (?) would it apply to sum types as well? variable -- Variables variable.builtin -- Builtin variables like self, this, etc variable.other.member -- "Fields of composite data types (e.g. structs, unions)" per Helix docs variable.parameter -- Function parameter (?) at the definition site, call site, or both? warning -- ?
hadronized commented 11 months ago

There is no documentation, and I assume some of them are duplicates / specifications in some specific languages.

I appreciate the effort, we should definitely update the wiki page for colorscheme (here) based from your work. I’ll review a bit more tomorrow and include your ideas.