aboutsummaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'runtime')
-rw-r--r--runtime/queries/c-sharp/highlights.scm193
-rw-r--r--runtime/queries/c/highlights.scm167
-rw-r--r--runtime/queries/cairo/highlights.scm2
-rw-r--r--runtime/queries/cpp/highlights.scm122
-rw-r--r--runtime/queries/lua/folds.scm10
-rw-r--r--runtime/queries/lua/highlights.scm77
-rw-r--r--runtime/queries/lua/indents.scm10
-rw-r--r--runtime/queries/lua/injections.scm3
-rw-r--r--runtime/queries/lua/textobjects.scm15
-rw-r--r--runtime/queries/markdown/injections.scm2
-rw-r--r--runtime/queries/purescript/highlights.scm1
-rw-r--r--runtime/queries/purescript/injections.scm1
-rw-r--r--runtime/queries/purescript/locals.scm1
-rw-r--r--runtime/queries/python/indents.scm (renamed from runtime/queries/python/indents.scm_)26
-rw-r--r--runtime/queries/rust/highlights.scm3
-rw-r--r--runtime/queries/twig/highlights.scm70
-rw-r--r--runtime/queries/wgsl/highlights.scm175
-rw-r--r--runtime/queries/zig/indents.scm8
-rw-r--r--runtime/themes/ayu_light.toml30
-rw-r--r--runtime/themes/ayu_mirage.toml3
-rw-r--r--runtime/themes/bogster.toml146
-rw-r--r--runtime/themes/bogster_light.toml97
-rw-r--r--runtime/themes/dark_high_contrast.toml105
-rw-r--r--runtime/themes/everforest_dark.toml31
-rw-r--r--runtime/themes/everforest_light.toml31
-rw-r--r--runtime/themes/heisenberg.toml86
-rw-r--r--runtime/themes/kanagawa.toml125
-rw-r--r--runtime/themes/monokai_pro_octagon.toml3
-rw-r--r--runtime/themes/onedarker.toml8
-rw-r--r--runtime/themes/pop-dark.toml1
-rw-r--r--runtime/themes/rose_pine.toml6
-rw-r--r--runtime/themes/rose_pine_dawn.toml6
-rw-r--r--runtime/themes/rose_pine_moon.toml4
-rw-r--r--runtime/themes/sonokai.toml4
-rw-r--r--runtime/tutor172
35 files changed, 1233 insertions, 511 deletions
diff --git a/runtime/queries/c-sharp/highlights.scm b/runtime/queries/c-sharp/highlights.scm
index dbb7c778..38394862 100644
--- a/runtime/queries/c-sharp/highlights.scm
+++ b/runtime/queries/c-sharp/highlights.scm
@@ -10,24 +10,22 @@
name: (identifier) @function))
(invocation_expression
- (member_access_expression
- expression: (identifier) @variable))
-
-(invocation_expression
function: (conditional_access_expression
(member_binding_expression
name: (identifier) @function)))
(invocation_expression
- [(identifier) (qualified_name)] @function)
+ [(identifier) (qualified_name)] @function)
+
+(local_function_statement
+ name: (identifier) @function)
; Generic Method invocation with generic type
(invocation_expression
function: (generic_name
- . (identifier) @function))
+ . (identifier) @function))
;; Namespaces
-
(namespace_declaration
name: [(identifier) (qualified_name)] @namespace)
@@ -40,8 +38,11 @@
(namespace_declaration name: (identifier) @type)
(using_directive (_) @namespace)
(constructor_declaration name: (identifier) @type)
+(destructor_declaration name: (identifier) @type)
(object_creation_expression [(identifier) (qualified_name)] @type)
(type_parameter_list (type_parameter) @type)
+(array_type (identifier) @type)
+(for_each_statement type: (identifier) @type)
[
(implicit_type)
@@ -66,7 +67,7 @@
(object_creation_expression
(generic_name
- (identifier) @type))
+ (identifier) @type))
(property_declaration
(generic_name
@@ -74,7 +75,7 @@
(_
type: (generic_name
- (identifier) @type))
+ (identifier) @type))
;; Enum
(enum_member_declaration (identifier) @variable.other.member)
@@ -91,6 +92,7 @@
(verbatim_string_literal)
(interpolated_string_text)
(interpolated_verbatim_string_text)
+ (interpolation_format_clause)
"\""
"$\""
"@$\""
@@ -107,6 +109,9 @@
(comment) @comment
;; Tokens
+(type_argument_list ["<" ">"] @punctuation.bracket)
+(type_parameter_list ["<" ">"] @punctuation.bracket)
+
[
";"
"."
@@ -150,97 +155,112 @@
"%"
"%="
":"
+ "::"
".."
"&="
"->"
"??="
] @operator
-[
- "("
- ")"
- "["
- "]"
- "{"
- "}"
-] @punctuation.bracket
+["(" ")" "[" "]" "{" "}"] @punctuation.bracket
;; Keywords
-(modifier) @keyword
+(modifier) @keyword.storage.modifier
(this_expression) @keyword
(escape_sequence) @constant.character.escape
[
"as"
+ "await"
"base"
- "break"
- "case"
- "catch"
"checked"
- "class"
- "continue"
- "default"
- "delegate"
- "do"
- "else"
- "enum"
- "event"
- "explicit"
- "finally"
- "for"
- "foreach"
- "goto"
- "if"
- "implicit"
- "interface"
+ "from"
+ "get"
+ "in"
+ "init"
"is"
+ "let"
"lock"
- "namespace"
+ "new"
"operator"
+ "out"
"params"
- "return"
+ "ref"
+ "select"
+ "set"
"sizeof"
"stackalloc"
- "static"
- "struct"
- "switch"
- "throw"
- "try"
"typeof"
"unchecked"
"using"
- "while"
- "new"
- "await"
- "in"
- "yield"
- "get"
- "set"
"when"
- "out"
- "ref"
- "from"
"where"
- "select"
- "record"
- "init"
"with"
- "let"
+ "yield"
] @keyword
-(nullable_directive) @keyword.directive
-(define_directive) @keyword.directive
-(undef_directive) @keyword.directive
-(if_directive) @keyword.directive
-(else_directive) @keyword.directive
-(elif_directive) @keyword.directive
-(endif_directive) @keyword.directive
-(region_directive) @keyword.directive
-(endregion_directive) @keyword.directive
-(error_directive) @keyword.directive
-(warning_directive) @keyword.directive
-(line_directive) @keyword.directive
-(pragma_directive) @keyword.directive
+[
+ "class"
+ "delegate"
+ "enum"
+ "event"
+ "interface"
+ "namespace"
+ "struct"
+ "record"
+] @keyword.storage.type
+
+[
+ "explicit"
+ "implicit"
+ "static"
+] @keyword.storage.modifier
+
+[
+ "break"
+ "continue"
+ "goto"
+] @keyword.control
+
+[
+ "catch"
+ "finally"
+ "throw"
+ "try"
+] @keyword.control.exception
+
+[
+ "do"
+ "for"
+ "foreach"
+ "while"
+] @keyword.control.repeat
+
+[
+ "case"
+ "default"
+ "else"
+ "if"
+ "switch"
+] @keyword.control.conditional
+
+"return" @keyword.control.return
+
+[
+ (nullable_directive)
+ (define_directive)
+ (undef_directive)
+ (if_directive)
+ (else_directive)
+ (elif_directive)
+ (endif_directive)
+ (region_directive)
+ (endregion_directive)
+ (error_directive)
+ (warning_directive)
+ (line_directive)
+ (pragma_directive)
+] @keyword.directive
;; Linq
(from_clause (identifier) @variable)
@@ -259,10 +279,16 @@
(binary_expression [(identifier) (qualified_name)] @variable [(identifier) (qualified_name)] @variable)
(binary_expression [(identifier) (qualified_name)]* @variable)
(conditional_expression [(identifier) (qualified_name)] @variable)
+(conditional_access_expression [(identifier) (qualified_name)] @variable)
(prefix_unary_expression [(identifier) (qualified_name)] @variable)
(postfix_unary_expression [(identifier) (qualified_name)]* @variable)
(assignment_expression [(identifier) (qualified_name)] @variable)
(cast_expression [(identifier) (qualified_name)] @type [(identifier) (qualified_name)] @variable)
+(element_access_expression (identifier) @variable)
+(member_access_expression
+ expression: ([(identifier) (qualified_name)] @type
+ (#match? @type "^[A-Z]")))
+(member_access_expression [(identifier) (qualified_name)] @variable)
;; Class
(base_list (identifier) @type)
@@ -278,7 +304,6 @@
name: (identifier) @variable)
;; Delegate
-
(delegate_declaration (identifier) @type)
;; Lambda
@@ -296,11 +321,11 @@
(parameter_list
(parameter
- name: (identifier) @parameter))
+ name: (identifier) @parameter))
(parameter_list
(parameter
- type: [(identifier) (qualified_name)] @type))
+ type: [(identifier) (qualified_name)] @type))
;; Typeof
(type_of_expression [(identifier) (qualified_name)] @type)
@@ -315,7 +340,7 @@
;; Type
(generic_name (identifier) @type)
-(type_parameter [(identifier) (qualified_name)] @variable.parameter)
+(type_parameter [(identifier) (qualified_name)] @type)
(type_argument_list [(identifier) (qualified_name)] @type)
;; Type constraints
@@ -333,15 +358,21 @@
;; Lock statement
(lock_statement (identifier) @variable)
+;; Declaration expression
+(declaration_expression
+ type: (identifier) @type
+ name: (identifier) @variable)
+
;; Rest
-(member_access_expression) @variable
-(element_access_expression (identifier) @variable)
(argument (identifier) @variable)
+(name_colon (identifier) @variable)
+(if_statement (identifier) @variable)
(for_statement (identifier) @variable)
(for_each_statement (identifier) @variable)
(expression_statement (identifier) @variable)
-(member_access_expression expression: (identifier) @variable)
-(member_access_expression name: (identifier) @variable)
-(conditional_access_expression [(identifier) (qualified_name)] @variable)
+(array_rank_specifier (identifier) @variable)
+(equals_value_clause (identifier) @variable)
+(interpolation (identifier) @variable)
+(cast_expression (identifier) @variable)
((identifier) @comment.unused
- (#eq? @comment.unused "_"))
+ (#eq? @comment.unused "_"))
diff --git a/runtime/queries/c/highlights.scm b/runtime/queries/c/highlights.scm
index 647df05d..8122216d 100644
--- a/runtime/queries/c/highlights.scm
+++ b/runtime/queries/c/highlights.scm
@@ -1,71 +1,111 @@
-(storage_class_specifier) @keyword.storage
-
-"goto" @keyword
-"register" @keyword
-"break" @keyword
-"case" @keyword
-"continue" @keyword
-"default" @keyword
-"do" @keyword
-"else" @keyword
-"enum" @keyword
-"extern" @keyword
-"for" @keyword
-"if" @keyword
-"inline" @keyword
-"return" @keyword
"sizeof" @keyword
-"struct" @keyword
-"switch" @keyword
-"typedef" @keyword
-"union" @keyword
-"volatile" @keyword
-"while" @keyword
-"const" @keyword
[
- "#define"
- "#elif"
- "#else"
- "#endif"
- "#if"
- "#ifdef"
- "#ifndef"
- "#include"
- (preproc_directive)
+ "enum"
+ "struct"
+ "typedef"
+ "union"
+] @keyword.storage.type
+
+[
+ "extern"
+ "register"
+ (type_qualifier)
+ (storage_class_specifier)
+] @keyword.storage.modifier
+
+[
+ "goto"
+ "break"
+ "continue"
+] @keyword.control
+
+[
+ "do"
+ "for"
+ "while"
+] @keyword.control.repeat
+
+[
+ "if"
+ "else"
+ "switch"
+ "case"
+ "default"
+] @keyword.control.conditional
+
+"return" @keyword.control.return
+
+[
+ "defined"
+ "#define"
+ "#elif"
+ "#else"
+ "#endif"
+ "#if"
+ "#ifdef"
+ "#ifndef"
+ "#include"
+ (preproc_directive)
] @keyword.directive
-"--" @operator
-"-" @operator
-"-=" @operator
-"->" @operator
-"=" @operator
-"!=" @operator
-"*" @operator
-"&" @operator
-"&&" @operator
-"+" @operator
-"++" @operator
-"+=" @operator
-"<" @operator
-"==" @operator
-">" @operator
-"||" @operator
-">=" @operator
-"<=" @operator
-
-"." @punctuation.delimiter
-";" @punctuation.delimiter
+(pointer_declarator "*" @type.builtin)
+(abstract_pointer_declarator "*" @type.builtin)
+
+[
+ "+"
+ "-"
+ "*"
+ "/"
+ "++"
+ "--"
+ "%"
+ "=="
+ "!="
+ ">"
+ "<"
+ ">="
+ "<="
+ "&&"
+ "||"
+ "!"
+ "&"
+ "|"
+ "^"
+ "~"
+ "<<"
+ ">>"
+ "="
+ "+="
+ "-="
+ "*="
+ "/="
+ "%="
+ "<<="
+ ">>="
+ "&="
+ "^="
+ "|="
+ "?"
+] @operator
+
+(conditional_expression ":" @operator)
+
+"..." @punctuation
+
+["," "." ":" ";" "->" "::"] @punctuation.delimiter
+
+["(" ")" "[" "]" "{" "}"] @punctuation.bracket
[(true) (false)] @constant.builtin.boolean
-(enumerator) @type.enum.variant
+(enumerator name: (identifier) @type.enum.variant)
(string_literal) @string
(system_lib_string) @string
(null) @constant
-(number_literal) @constant.numeric.integer
+(number_literal) @constant.numeric
(char_literal) @constant.character
(call_expression
@@ -73,19 +113,28 @@
(call_expression
function: (field_expression
field: (field_identifier) @function))
+(call_expression (argument_list (identifier) @variable))
(function_declarator
- declarator: (identifier) @function)
+ declarator: [(identifier) (field_identifier)] @function)
+(parameter_declaration
+ declarator: (identifier) @variable.parameter)
+(parameter_declaration
+ (pointer_declarator
+ declarator: (identifier) @variable.parameter))
(preproc_function_def
name: (identifier) @function.special)
+(attribute
+ name: (identifier) @attribute)
+
(field_identifier) @variable.other.member
(statement_identifier) @label
(type_identifier) @type
-(primitive_type) @type
-(sized_type_specifier) @type
+(primitive_type) @type.builtin
+(sized_type_specifier) @type.builtin
((identifier) @constant
- (#match? @constant "^[A-Z][A-Z\\d_]*$"))
+ (#match? @constant "^[A-Z][A-Z\\d_]*$"))
(identifier) @variable
diff --git a/runtime/queries/cairo/highlights.scm b/runtime/queries/cairo/highlights.scm
index 3a30d188..c10ce5e0 100644
--- a/runtime/queries/cairo/highlights.scm
+++ b/runtime/queries/cairo/highlights.scm
@@ -36,7 +36,6 @@
[
"if"
"else"
- "end"
"assert"
"with"
"with_attr"
@@ -54,7 +53,6 @@
"const"
"local"
"struct"
- "member"
"alloc_locals"
"tempvar"
] @keyword
diff --git a/runtime/queries/cpp/highlights.scm b/runtime/queries/cpp/highlights.scm
index 3348ef3c..8637489e 100644
--- a/runtime/queries/cpp/highlights.scm
+++ b/runtime/queries/cpp/highlights.scm
@@ -1,7 +1,11 @@
-; inherits: c
-
; Functions
+; These casts are parsed as function calls, but are not.
+((identifier) @keyword (#eq? @keyword "static_cast"))
+((identifier) @keyword (#eq? @keyword "dynamic_cast"))
+((identifier) @keyword (#eq? @keyword "reinterpret_cast"))
+((identifier) @keyword (#eq? @keyword "const_cast"))
+
(call_expression
function: (qualified_identifier
name: (identifier) @function))
@@ -12,56 +16,114 @@
(template_method
name: (field_identifier) @function)
-(template_function
- name: (identifier) @function)
-
(function_declarator
declarator: (qualified_identifier
name: (identifier) @function))
(function_declarator
declarator: (qualified_identifier
- name: (identifier) @function))
+ name: (qualified_identifier
+ name: (identifier) @function)))
(function_declarator
declarator: (field_identifier) @function)
; Types
-((namespace_identifier) @type
- (#match? @type "^[A-Z]"))
+(using_declaration ("using" "namespace" (identifier) @namespace))
+(using_declaration ("using" "namespace" (qualified_identifier name: (identifier) @namespace)))
+(namespace_definition name: (identifier) @namespace)
+(namespace_identifier) @namespace
+
+(qualified_identifier name: (identifier) @type.enum.variant)
(auto) @type
+"decltype" @type
+
+(ref_qualifier ["&" "&&"] @type.builtin)
+(reference_declarator ["&" "&&"] @type.builtin)
+(abstract_reference_declarator ["&" "&&"] @type.builtin)
; Constants
(this) @variable.builtin
-(nullptr) @constant
+(nullptr) @constant.builtin
; Keywords
-"catch" @keyword
-"class" @keyword
-"constexpr" @keyword
-"delete" @keyword
-"explicit" @keyword
-"final" @keyword
-"friend" @keyword
-"mutable" @keyword
-"namespace" @keyword
-"noexcept" @keyword
-"new" @keyword
-"override" @keyword
-"private" @keyword
-"protected" @keyword
-"public" @keyword
-"template" @keyword
-"throw" @keyword
-"try" @keyword
-"typename" @keyword
-"using" @keyword
-"virtual" @keyword
+(template_argument_list (["<" ">"] @punctuation.bracket))
+(template_parameter_list (["<" ">"] @punctuation.bracket))
+(default_method_clause "default" @keyword)
+
+"static_assert" @function.special
+
+[
+ "<=>"
+ "[]"
+ "()"
+] @operator
+
+[
+ "co_await"
+ "co_return"
+ "co_yield"
+ "concept"
+ "delete"
+ "new"
+ "operator"
+ "requires"
+ "using"
+] @keyword
+
+[
+ "catch"
+ "noexcept"
+ "throw"
+ "try"
+] @keyword.control.exception
+
+
+[
+ "and"
+ "and_eq"
+ "bitor"
+ "bitand"
+ "not"
+ "not_eq"
+ "or"
+ "or_eq"
+ "xor"
+ "xor_eq"
+] @keyword.operator
+
+[
+ "class"
+ "namespace"
+ "typename"
+ "template"
+] @keyword.storage.type
+
+[
+ "constexpr"
+ "constinit"
+ "consteval"
+ "mutable"
+] @keyword.storage.modifier
+
+; Modifiers that aren't plausibly type/storage related.
+[
+ "explicit"
+ "friend"
+ "virtual"
+ (virtual_specifier) ; override/final
+ "private"
+ "protected"
+ "public"
+ "inline" ; C++ meaning differs from C!
+] @keyword
; Strings
(raw_string_literal) @string
+
+; inherits: c
diff --git a/runtime/queries/lua/folds.scm b/runtime/queries/lua/folds.scm
new file mode 100644
index 00000000..d8f0b42d
--- /dev/null
+++ b/runtime/queries/lua/folds.scm
@@ -0,0 +1,10 @@
+[
+ (do_statement)
+ (while_statement)
+ (repeat_statement)
+ (if_statement)
+ (for_statement)
+ (function_declaration)
+ (function_definition)
+ (table_constructor)
+] @fold
diff --git a/runtime/queries/lua/highlights.scm b/runtime/queries/lua/highlights.scm
index e73b32d6..f48e607c 100644
--- a/runtime/queries/lua/highlights.scm
+++ b/runtime/queries/lua/highlights.scm
@@ -1,7 +1,8 @@
;;; Highlighting for lua
;;; Builtins
-(self) @variable.builtin
+((identifier) @variable.builtin
+ (#eq? @variable.builtin "self"))
;; Keywords
@@ -12,20 +13,20 @@
"end"
] @keyword.control.conditional)
+(elseif_statement
[
- "else"
"elseif"
"then"
-] @keyword.control.conditional
+ "end"
+] @keyword.control.conditional)
-(for_statement
+(else_statement
[
- "for"
- "do"
+ "else"
"end"
-] @keyword.control.repeat)
+] @keyword.control.conditional)
-(for_in_statement
+(for_statement
[
"for"
"do"
@@ -51,21 +52,34 @@
"end"
] @keyword)
+"return" @keyword.control.return
+
[
"in"
"local"
(break_statement)
"goto"
- "return"
] @keyword
+(function_declaration
+[
+ "function"
+ "end"
+] @keyword.function)
+
+(function_definition
+[
+ "function"
+ "end"
+] @keyword.function)
+
;; Operators
[
"not"
"and"
"or"
-] @operator
+] @keyword.operator
[
"="
@@ -95,6 +109,7 @@
["," "." ":" ";"] @punctuation.delimiter
;; Brackets
+
[
"("
")"
@@ -110,7 +125,8 @@
(true)
] @constant.builtin.boolean
(nil) @constant.builtin
-(spread) @constant ;; "..."
+(vararg_expression) @constant
+
((identifier) @constant
(#match? @constant "^[A-Z][A-Z_0-9]*$"))
@@ -119,45 +135,32 @@
(identifier) @variable.parameter)
; ;; Functions
-(function [(function_name) (identifier)] @function)
-(function ["function" "end"] @keyword.function)
-
-(function
- (function_name
- (function_name_field
- (property_identifier) @function .)))
-
-(local_function (identifier) @function)
-(local_function ["function" "end"] @keyword.function)
+(function_declaration name: (identifier) @function)
+(function_call name: (identifier) @function.call)
-(variable_declaration
- (variable_declarator (identifier) @function) (function_definition))
-(local_variable_declaration
- (variable_declarator (identifier) @function) (function_definition))
+(function_declaration name: (dot_index_expression field: (identifier) @function))
+(function_call name: (dot_index_expression field: (identifier) @function.call))
-(function_definition ["function" "end"] @keyword.function)
+; TODO: incorrectly highlights variable N in `N, nop = 42, function() end`
+(assignment_statement
+ (variable_list
+ name: (identifier) @function)
+ (expression_list
+ value: (function_definition)))
-(function_call
- [
- ((identifier) @variable (method) @function.method)
- ((_) (method) @function.method)
- (identifier) @function
- (field_expression (property_identifier) @function)
- ]
- . (arguments))
+(method_index_expression method: (identifier) @function.method)
;; Nodes
-(table ["{" "}"] @constructor)
(comment) @comment
(string) @string
(number) @constant.numeric.integer
(label_statement) @label
; A bit of a tricky one, this will only match field names
(field . (identifier) @variable.other.member (_))
-(shebang) @comment
+(hash_bang_line) @comment
;; Property
-(property_identifier) @variable.other.member
+(dot_index_expression field: (identifier) @variable.other.member)
;; Variable
(identifier) @variable
diff --git a/runtime/queries/lua/indents.scm b/runtime/queries/lua/indents.scm
index 55a812c5..2e5a108e 100644
--- a/runtime/queries/lua/indents.scm
+++ b/runtime/queries/lua/indents.scm
@@ -1,17 +1,13 @@
[
(function_definition)
- (variable_declaration)
- (local_variable_declaration)
+ (function_declaration)
+ (method_index_expression)
(field)
- (local_function)
- (function)
(if_statement)
(for_statement)
- (for_in_statement)
(repeat_statement)
- (return_statement)
(while_statement)
- (table)
+ (table_constructor)
(arguments)
(do_statement)
] @indent
diff --git a/runtime/queries/lua/injections.scm b/runtime/queries/lua/injections.scm
index 321c90ad..fca94d58 100644
--- a/runtime/queries/lua/injections.scm
+++ b/runtime/queries/lua/injections.scm
@@ -1,2 +1,3 @@
((comment) @injection.content
- (#set! injection.language "comment"))
+ (#set! injection.language "comment")
+ (#set! injection.include-children))
diff --git a/runtime/queries/lua/textobjects.scm b/runtime/queries/lua/textobjects.scm
new file mode 100644
index 00000000..6fb2000d
--- /dev/null
+++ b/runtime/queries/lua/textobjects.scm
@@ -0,0 +1,15 @@
+(function_definition
+ body: (_) @function.inside) @function.around
+
+(function_declaration
+ body: (_) @function.inside) @function.around
+
+(parameters
+ ((_) @parameter.inside . ","? @parameter.around) @parameter.around)
+
+(arguments
+ ((_) @parameter.inside . ","? @parameter.around) @parameter.around)
+
+(comment) @comment.inside
+
+(comment)+ @comment.around
diff --git a/runtime/queries/markdown/injections.scm b/runtime/queries/markdown/injections.scm
index f94b9f98..e184db15 100644
--- a/runtime/queries/markdown/injections.scm
+++ b/runtime/queries/markdown/injections.scm
@@ -7,6 +7,8 @@
((html_block) @injection.content (#set! injection.language "html") (#set! injection.include-unnamed-children))
+((pipe_table_cell) @injection.content (#set! injection.language "markdown.inline") (#set! injection.include-unnamed-children))
+
((minus_metadata) @injection.content (#set! injection.language "yaml") (#set! injection.include-unnamed-children))
((plus_metadata) @injection.content (#set! injection.language "toml") (#set! injection.include-unnamed-children))
diff --git a/runtime/queries/purescript/highlights.scm b/runtime/queries/purescript/highlights.scm
new file mode 100644
index 00000000..ef073eb2
--- /dev/null
+++ b/runtime/queries/purescript/highlights.scm
@@ -0,0 +1 @@
+; inherits: haskell
diff --git a/runtime/queries/purescript/injections.scm b/runtime/queries/purescript/injections.scm
new file mode 100644
index 00000000..ef073eb2
--- /dev/null
+++ b/runtime/queries/purescript/injections.scm
@@ -0,0 +1 @@
+; inherits: haskell
diff --git a/runtime/queries/purescript/locals.scm b/runtime/queries/purescript/locals.scm
new file mode 100644
index 00000000..ef073eb2
--- /dev/null
+++ b/runtime/queries/purescript/locals.scm
@@ -0,0 +1 @@
+; inherits: haskell
diff --git a/runtime/queries/python/indents.scm_ b/runtime/queries/python/indents.scm
index 810ff52f..b7b499c0 100644
--- a/runtime/queries/python/indents.scm_
+++ b/runtime/queries/python/indents.scm
@@ -28,11 +28,31 @@
] @indent
[
+ (if_statement)
+ (for_statement)
+ (while_statement)
+ (with_statement)
+ (try_statement)
+
+ (function_definition)
+ (class_definition)
+] @extend
+
+[
+ (return_statement)
+ (break_statement)
+ (continue_statement)
+ (raise_statement)
+ (pass_statement)
+] @extend.prevent-once
+
+[
")"
"]"
"}"
- (return_statement)
- (pass_statement)
- (raise_statement)
] @outdent
+(elif_clause
+ "elif" @outdent)
+(else_clause
+ "else" @outdent)
diff --git a/runtime/queries/rust/highlights.scm b/runtime/queries/rust/highlights.scm
index 7d0afcde..81f05f7a 100644
--- a/runtime/queries/rust/highlights.scm
+++ b/runtime/queries/rust/highlights.scm
@@ -253,6 +253,9 @@
(function_item
name: (identifier) @function)
+(function_signature_item
+ name: (identifier) @function)
+
; ---
; Macros
; ---
diff --git a/runtime/queries/twig/highlights.scm b/runtime/queries/twig/highlights.scm
index 2c95ab63..1ef8d06b 100644
--- a/runtime/queries/twig/highlights.scm
+++ b/runtime/queries/twig/highlights.scm
@@ -1,16 +1,60 @@
-(comment_directive) @comment
+(comment) @comment
+
+(filter_identifier) @function.method
+(function_identifier) @function.method
+(test) @function.builtin
+(variable) @variable
+(string) @string
+(interpolated_string) @string
+(operator) @operator
+(number) @constant.numeric.integer
+(boolean) @constant.builtin.boolean
+(null) @constant.builtin
+(keyword) @keyword
+(attribute) @attribute
+(tag) @tag
+(conditional) @keyword.control.conditional
+(repeat) @keyword.control.repeat
+(method) @function.method
+(parameter) @variable.parameter
[
- "{%"
- "{%-"
- "{%~"
- "%}"
- "-%}"
- "~%}"
- "{{"
- "{{-"
- "{{~"
- "}}"
- "-}}"
- "~}}"
+ "{{"
+ "}}"
+ "{{-"
+ "-}}"
+ "{{~"
+ "~}}"
+ "{%"
+ "%}"
+ "{%-"
+ "-%}"
+ "{%~"
+ "~%}"
] @keyword
+
+[
+ ","
+ "."
+ "?"
+ ":"
+ "="
+] @punctuation.delimiter
+
+(interpolated_string [
+ "#{"
+ "}"
+] @punctuation.delimiter)
+
+[
+ "("
+ ")"
+ "["
+ "]"
+ "{"
+] @punctuation.bracket
+
+(hash [
+ "}"
+] @punctuation.bracket)
+
diff --git a/runtime/queries/wgsl/highlights.scm b/runtime/queries/wgsl/highlights.scm
index baf9dd8f..2817ea3a 100644
--- a/runtime/queries/wgsl/highlights.scm
+++ b/runtime/queries/wgsl/highlights.scm
@@ -2,57 +2,26 @@
(float_literal) @constant.numeric.float
(bool_literal) @constant.builtin.boolean
-(global_constant_declaration) @variable
-(global_variable_declaration) @variable
-(compound_statement) @variable
-(const_expression) @function
-
-(variable_identifier_declaration
- (identifier) @variable
- (type_declaration) @type)
-
-(function_declaration
- (identifier) @function
- (function_return_type_declaration
- (type_declaration) @type))
-
-(parameter
- (variable_identifier_declaration
- (identifier) @variable.parameter
- (type_declaration) @type))
-
-(struct_declaration
- (identifier) @type)
-
-(struct_declaration
- (struct_member
- (variable_identifier_declaration
- (identifier) @variable.other.member
- (type_declaration) @type)))
+[
+ "bitcast"
+ "discard"
+ "enable"
+ "fallthrough"
+] @keyword
-(type_constructor_or_function_call_expression
- (type_declaration) @function)
+[
+ "let"
+ "override"
+ "struct"
+ "type"
+ "var"
+ (texel_format)
+] @keyword.storage.type
[
- "struct"
- "bitcast"
- "discard"
- "enable"
- "fallthrough"
- "fn"
- "let"
- "private"
- "read"
- "read_write"
- "storage"
- "type"
- "uniform"
- "var"
- "workgroup"
- "write"
- "override"
- (texel_format)
-] @keyword
+ (access_mode)
+ (address_space)
+] @keyword.storage.modifier
"fn" @keyword.function
@@ -62,53 +31,87 @@
["(" ")" "[" "]" "{" "}"] @punctuation.bracket
+(type_declaration ["<" ">"] @punctuation.bracket)
+
[
- "loop"
- "for"
- "while"
- "break"
- "continue"
- "continuing"
+ "break"
+ "continue"
+ "continuing"
+] @keyword.control
+
+[
+ "loop"
+ "for"
+ "while"
] @keyword.control.repeat
[
- "if"
- "else"
- "switch"
- "case"
- "default"
+ "if"
+ "else"
+ "switch"
+ "case"
+ "default"
] @keyword.control.conditional
[
- "&"
- "&&"
- "/"
- "!"
- "="
- "=="
- "!="
- ">"
- ">="
- ">>"
- "<"
- "<="
- "<<"
- "%"
- "-"
- "+"
- "|"
- "||"
- "*"
- "~"
- "^"
- "@"
- "++"
- "--"
+ "!"
+ "!="
+ "%"
+ "%="
+ "&"
+ "&&"
+ "&="
+ "*"
+ "*="
+ "+"
+ "++"
+ "+="
+ "-"
+ "--"
+ "-="
+ "->"
+ "/"
+ "/="
+ "<"
+ "<<"
+ "<="
+ "="
+ "=="
+ ">"
+ ">="
+ ">>"
+ "@"
+ "^"
+ "^="
+ "|"
+ "|="
+ "||"
+ "~"
] @operator
+(function_declaration
+ (identifier) @function)
+
+(parameter
+ (variable_identifier_declaration
+ (identifier) @variable.parameter))
+
+(struct_declaration
+ (identifier) @type)
+
+(struct_declaration
+ (struct_member
+ (variable_identifier_declaration
+ (identifier) @variable.other.member)))
+
+(type_constructor_or_function_call_expression
+ (type_declaration (identifier) @function))
+
+(type_declaration _ @type)
+
(attribute
- (identifier) @attribute)
+ (identifier) @attribute)
-(comment) @comment
+(identifier) @variable
-(ERROR) @error
+(comment) @comment
diff --git a/runtime/queries/zig/indents.scm b/runtime/queries/zig/indents.scm
index af25a9c3..b177b165 100644
--- a/runtime/queries/zig/indents.scm
+++ b/runtime/queries/zig/indents.scm
@@ -1,12 +1,14 @@
[
+ (AsmExpr)
+ (AssignExpr)
(Block)
(BlockExpr)
(ContainerDecl)
- (SwitchExpr)
- (AssignExpr)
(ErrorUnionExpr)
- (Statement)
(InitList)
+ (Statement)
+ (SwitchExpr)
+ (TestDecl)
] @indent
[
diff --git a/runtime/themes/ayu_light.toml b/runtime/themes/ayu_light.toml
index 7ea4ef58..80943613 100644
--- a/runtime/themes/ayu_light.toml
+++ b/runtime/themes/ayu_light.toml
@@ -34,23 +34,22 @@
# Interface
"ui.background"= { bg = "background" }
-"ui.cursor" = { bg = "yellow", fg = "dark_gray" }
+"ui.cursor" = { bg = "yellow", fg = "light_gray" }
"ui.cursor.match" = { fg = "orange" }
-"ui.linenr" = { fg = "dark_gray" }
+"ui.linenr" = { fg = "light_gray" }
"ui.linenr.selected" = { fg = "orange" }
"ui.cursorline" = { bg = "black" }
-"ui.statusline" = { fg = "foreground", bg = "black" }
"ui.popup" = { bg = "black" }
-"ui.window" = { fg = "dark_gray" }
+"ui.window" = { fg = "light_gray" }
"ui.help" = { fg = "foreground", bg = "black" }
"ui.text" = { fg = "foreground" }
-"ui.text.focus" = { bg = "dark_gray", fg = "foreground" }
+"ui.text.focus" = { bg = "light_gray", fg = "foreground" }
"ui.text.info" = { fg = "foreground" }
-"ui.virtual.whitespace" = { fg = "dark_gray" }
+"ui.virtual.whitespace" = { fg = "light_gray" }
"ui.virtual.ruler" = { bg = "black" }
"ui.menu" = { fg = "foreground", bg = "black" }
"ui.menu.selected" = { bg = "orange", fg = "background" }
-"ui.selection" = { bg = "dark_gray" }
+"ui.selection" = { bg = "light_gray" }
"warning" = { fg = "yellow" }
"error" = { fg = "red", modifiers = ["bold"] }
"info" = { fg = "blue", modifiers = ["bold"] }
@@ -59,8 +58,13 @@
"diagnostic.info"= { fg = "blue", modifiers = ["underlined"] }
"diagnostic.warning"= { fg = "yellow", modifiers = ["underlined"] }
"diagnostic.error"= { fg = "red", modifiers = ["underlined"] }
-"ui.bufferline" = { fg = "gray", bg = "dark_gray" }
-"ui.bufferline.active" = { fg = "dark", bg = "background" }
+"ui.bufferline" = { fg = "ui_foreground", bg = "ui_background" }
+"ui.bufferline.active" = { fg = "ui_background", bg = "ui_foreground" }
+"ui.statusline" = { fg = "ui_foreground", bg = "ui_background" }
+"ui.statusline.inactive" = { fg = "ui_foreground", bg = "ui_background" }
+"ui.statusline.normal" = { fg = "white", bg = "light_blue" }
+"ui.statusline.insert" = { fg = "white", bg = "orange" }
+"ui.statusline.select" = { fg = "white", bg = "magenta" }
"special" = { fg = "orange" }
@@ -68,14 +72,18 @@
background = "#fcfcfc"
foreground = "#5c6166"
+ui_foreground = "#8a9199"
+ui_background = "#f8f9fa"
+
black = "#e7eaed"
+white = "#fcfcfc"
blue = "#399ee6"
+light_blue = "#55b4d4"
cyan = "#478acc"
-dark_gray = "#e7eaed"
+light_gray = "#e7eaed"
gray = "#787b8099"
green = "#86b300"
magenta = "#a37acc"
orange = "#fa8d3e"
red = "#f07171"
yellow = "#ffaa33"
-dark = "#131721"
diff --git a/runtime/themes/ayu_mirage.toml b/runtime/themes/ayu_mirage.toml
index f3b49d87..e01866a9 100644
--- a/runtime/themes/ayu_mirage.toml
+++ b/runtime/themes/ayu_mirage.toml
@@ -34,7 +34,8 @@
# Interface
"ui.background"= { bg = "background" }
-"ui.cursor" = { bg = "yellow", fg = "dark_gray" }
+"ui.cursor" = { bg = "green", fg = "dark_gray" }
+"ui.cursor.primary" = { bg = "orange", fg = "dark_gray" }
"ui.cursor.match" = { fg = "orange" }
"ui.linenr" = { fg = "dark_gray" }
"ui.linenr.selected" = { fg = "orange" }
diff --git a/runtime/themes/bogster.toml b/runtime/themes/bogster.toml
index c1902b9b..eb6c4c50 100644
--- a/runtime/themes/bogster.toml
+++ b/runtime/themes/bogster.toml
@@ -1,76 +1,96 @@
# Author : Wojciech Kępka <wojciech@wkepka.dev>
-"attribute" = "#dc7759"
-"keyword" = { fg = "#dcb659", modifiers = ["bold"] }
-"keyword.directive" = "#dcb659"
-"namespace" = "#d32c5d"
-"punctuation" = "#dc7759"
-"punctuation.delimiter" = "#dc7759"
-"operator" = { fg = "#dc7759", modifiers = ["bold"] }
-"special" = "#7fdc59"
-"variable.other.member" = "#c6b8ad"
-"variable" = "#c6b8ad"
-"variable.parameter" = "#c6b8ad"
-"type" = "#dc597f"
-"type.builtin" = { fg = "#d32c5d", modifiers = ["bold"] }
-"constructor" = "#dc597f"
-"function" = "#59dcd8"
-"function.macro" = { fg = "#dc7759", modifiers = ["bold"] }
-"function.builtin" = { fg = "#59dcd8", modifiers = ["bold"] }
-"comment" = "#627d9d"
-"variable.builtin" = "#c6b8ad"
-"constant" = "#59dcb7"
-"constant.builtin" = "#59dcb7"
-"string" = "#59dcb7"
-"constant.numeric" = "#59c0dc"
-"constant.character.escape" = { fg = "#7fdc59", modifiers = ["bold"] }
-"label" = "#59c0dc"
+"attribute" = "bogster-orange"
+"keyword" = { fg = "bogster-yellow", modifiers = ["bold"] }
+"keyword.directive" = "bogster-yellow"
+"namespace" = "bogster-red"
+"punctuation" = "bogster-orange"
+"punctuation.delimiter" = "bogster-orange"
+"operator" = { fg = "bogster-orange", modifiers = ["bold"] }
+"special" = "bogster-lgreen"
+"variable.other.member" = "bogster-fg0"
+"variable" = "bogster-fg0"
+"variable.parameter" = "bogster-fg0"
+"type" = "bogster-lred"
+"type.builtin" = { fg = "bogster-red", modifiers = ["bold"] }
+"constructor" = "bogster-lred"
+"function" = "bogster-lblue"
+"function.macro" = { fg = "bogster-orange", modifiers = ["bold"] }
+"function.builtin" = { fg = "bogster-lblue", modifiers = ["bold"] }
+"comment" = "bogster-base5"
+"variable.builtin" = "bogster-fg0"
+"constant" = "bogster-teal"
+"constant.builtin" = "bogster-teal"
+"string" = "bogster-teal"
+"constant.numeric" = "bogster-blue"
+"constant.character.escape" = { fg = "bogster-lgreen", modifiers = ["bold"] }
+"label" = "bogster-blue"
+"module" = "bogster-red"
-"module" = "#d32c5d"
+"markup.heading" = "bogster-blue"
+"markup.list" = "bogster-red"
+"markup.bold" = { fg = "bogster-yellow", modifiers = ["bold"] }
+"markup.italic" = { fg = "bogster-purp", modifiers = ["italic"] }
+"markup.link.url" = { fg = "bogster-yellow", modifiers = ["underlined"] }
+"markup.link.text" = "bogster-red"
+"markup.quote" = "bogster-teal"
+"markup.raw" = "bogster-lgreen"
-# TODO
-"markup.heading" = "blue"
-"markup.list" = "red"
-"markup.bold" = { fg = "yellow", modifiers = ["bold"] }
-"markup.italic" = { fg = "magenta", modifiers = ["italic"] }
-"markup.link.url" = { fg = "yellow", modifiers = ["underlined"] }
-"markup.link.text" = "red"
-"markup.quote" = "cyan"
-"markup.raw" = "green"
+"diff.plus" = "bogster-teal"
+"diff.delta" = "bogster-orange"
+"diff.minus" = "bogster-lred"
-"diff.plus" = "#59dcb7"
-"diff.delta" = "#dc7759"
-"diff.minus" = "#dc597f"
+"ui.background" = { bg = "bogster-base1" }
+"ui.linenr" = { fg = "bogster-base4" }
+"ui.linenr.selected" = { fg = "bogster-fg1" }
+"ui.cursorline" = { bg = "bogster-base0" }
+"ui.statusline" = { fg = "bogster-fg1", bg = "bogster-base2" }
+"ui.statusline.inactive" = { fg = "bogster-fg0", bg = "bogster-base2" }
+"ui.popup" = { bg = "bogster-base2" }
+"ui.window" = { bg = "bogster-base2" }
+"ui.help" = { bg = "bogster-base2", fg = "bogster-fg1" }
-"ui.background" = { bg = "#161c23" }
-"ui.linenr" = { fg = "#415367" }
-"ui.linenr.selected" = { fg = "#e5ded6" } # TODO
-"ui.cursorline" = { bg = "#131920" }
-"ui.statusline" = { fg = "#e5ded6", bg = "#232d38" }
-"ui.statusline.inactive" = { fg = "#c6b8ad", bg = "#232d38" }
-"ui.bufferline" = { fg = "#627d9d", bg = "#131920" }
-"ui.bufferline.active" = { fg = "#e5ded6", bg = "#232d38" }
-"ui.popup" = { bg = "#232d38" }
-"ui.window" = { bg = "#232d38" }
-"ui.help" = { bg = "#232d38", fg = "#e5ded6" }
+"ui.statusline.normal" = { fg = "bogster-base1", bg = "bogster-blue", modifiers = [ "bold" ]}
+"ui.statusline.insert" = { fg = "bogster-base1", bg = "bogster-lgreen", modifiers = [ "bold" ]}
+"ui.statusline.select" = { fg = "bogster-base1", bg = "bogster-red", modifiers = [ "bold" ] }
-"ui.text" = { fg = "#e5ded6" }
-"ui.text.focus" = { fg = "#e5ded6", modifiers= ["bold"] }
-"ui.virtual.whitespace" = "#627d9d"
-"ui.virtual.ruler" = { bg = "#131920" }
+"ui.text" = { fg = "bogster-fg1" }
+"ui.text.focus" = { fg = "bogster-fg1", modifiers= ["bold"] }
+"ui.virtual.whitespace" = "bogster-base5"
+"ui.virtual.ruler" = { bg = "bogster-base0" }
-"ui.selection" = { bg = "#313f4e" }
-# "ui.cursor.match" # TODO might want to override this because dimmed is not widely supported
-"ui.cursor.match" = { fg = "#313f4e", bg = "#dc7759" }
-"ui.cursor" = { fg = "#ABB2BF", modifiers = ["reversed"] }
+"ui.selection" = { bg = "bogster-base3" }
+"ui.cursor.match" = { fg = "bogster-base3", bg = "bogster-orange" }
+"ui.cursor" = { fg = "bogster-base5", modifiers = ["reversed"] }
-"ui.menu" = { fg = "#e5ded6bg", bg = "#232d38" }
-"ui.menu.selected" = { bg = "#313f4e" }
+"ui.menu" = { fg = "bogster-fg1", bg = "bogster-base2" }
+"ui.menu.selected" = { bg = "bogster-base3" }
-"warning" = "#dc7759"
-"error" = "#dc597f"
-"info" = "#59dcb7"
-"hint" = "#59c0dc"
+"warning" = "bogster-orange"
+"error" = "bogster-lred"
+"info" = "bogster-teal"
+"hint" = "bogster-blue"
# make diagnostic underlined, to distinguish with selection text.
diagnostic = { modifiers = ["underlined"] }
+
+[palette]
+bogster-yellow = "#dcb659"
+bogster-lblue = "#59dcd8"
+bogster-teal = "#59dcb7"
+bogster-blue = "#36b2d4"
+bogster-orange = "#dc7759"
+bogster-red = "#d32c5d"
+bogster-lgreen = "#7fdc59"
+bogster-lred = "#dc597f"
+bogster-purp = "#b759dc"
+
+bogster-base0 = "#13181e"
+bogster-base1 = "#161c23"
+bogster-base2 = "#232d38"
+bogster-base3 = "#313f4e"
+bogster-base4 = "#415367"
+bogster-base5 = "#abb2bf"
+
+bogster-fg0 = "#c6b8ad"
+bogster-fg1 = "#e5ded6"
diff --git a/runtime/themes/bogster_light.toml b/runtime/themes/bogster_light.toml
new file mode 100644
index 00000000..25aa4c80
--- /dev/null
+++ b/runtime/themes/bogster_light.toml
@@ -0,0 +1,97 @@
+# Author : Wojciech Kępka <wojciech@wkepka.dev>
+
+"attribute" = "bogster-orange"
+"keyword" = { fg = "bogster-yellow", modifiers = ["bold"] }
+"keyword.directive" = "bogster-yellow"
+"namespace" = "bogster-red"
+"punctuation" = "bogster-orange"
+"punctuation.delimiter" = "bogster-orange"
+"operator" = { fg = "bogster-orange", modifiers = ["bold"] }
+"special" = "bogster-lgreen"
+"variable.other.member" = "bogster-fg0"
+"variable" = "bogster-fg0"
+"variable.parameter" = "bogster-fg0"
+"type" = "bogster-lred"
+"type.builtin" = { fg = "bogster-red", modifiers = ["bold"] }
+"constructor" = "bogster-lred"
+"function" = "bogster-lblue"
+"function.macro" = { fg = "bogster-orange", modifiers = ["bold"] }
+"function.builtin" = { fg = "bogster-lblue", modifiers = ["bold"] }
+"comment" = "bogster-base5"
+"variable.builtin" = "bogster-fg0"
+"constant" = "bogster-teal"
+"constant.builtin" = "bogster-teal"
+"string" = "bogster-teal"
+"constant.numeric" = "bogster-blue"
+"constant.character.escape" = { fg = "bogster-lgreen", modifiers = ["bold"] }
+"label" = "bogster-blue"
+"module" = "bogster-red"
+
+"markup.heading" = "bogster-blue"
+"markup.list" = "bogster-red"
+"markup.bold" = { fg = "bogster-yellow", modifiers = ["bold"] }
+"markup.italic" = { fg = "magenta", modifiers = ["italic"] }
+"markup.link.url" = { fg = "bogster-yellow", modifiers = ["underlined"] }
+"markup.link.text" = "bogster-red"
+"markup.quote" = "bogster-lblue"
+"markup.raw" = "bogster-teal"
+
+"diff.plus" = "bogster-teal"
+"diff.delta" = "bogster-orange"
+"diff.minus" = "bogster-lred"
+
+"ui.background" = { bg = "bogster-base0" }
+"ui.linenr" = { fg = "bogster-base3" }
+"ui.linenr.selected" = { fg = "bogster-fg1" }
+"ui.cursorline" = { bg = "bogster-base00" }
+"ui.statusline" = { fg = "bogster-fg1", bg = "bogster-base1" }
+"ui.statusline.inactive" = { fg = "bogster-fg0", bg = "bogster-base1" }
+"ui.popup" = { bg = "bogster-base1" }
+"ui.window" = { bg = "bogster-base1" }
+"ui.help" = { bg = "bogster-base1", fg = "bogster-fg1" }
+
+"ui.statusline.normal" = { fg = "bogster-base0", bg = "bogster-blue", modifiers = [ "bold" ]}
+"ui.statusline.insert" = { fg = "bogster-base0", bg = "bogster-lgreen", modifiers = [ "bold" ]}
+"ui.statusline.select" = { fg = "bogster-base0", bg = "bogster-red", modifiers = [ "bold" ] }
+
+"ui.text" = { fg = "bogster-fg1" }
+"ui.text.focus" = { fg = "bogster-fg1", modifiers= ["bold"] }
+"ui.virtual.whitespace" = "bogster-base5"
+"ui.virtual.ruler" = { bg = "bogster-base00" }
+
+"ui.selection" = { bg = "bogster-base1" }
+"ui.cursor.match" = { fg = "bogster-base2", bg = "bogster-orange" }
+"ui.cursor" = { fg = "bogster-gray", modifiers = ["reversed"] }
+
+"ui.menu" = { fg = "bogster-fg1", bg = "bogster-base1" }
+"ui.menu.selected" = { bg = "bogster-base2" }
+
+"warning" = "bogster-orange"
+"error" = "bogster-lred"
+"info" = "bogster-teal"
+"hint" = "bogster-blue"
+
+# make diagnostic underlined, to distinguish with selection text.
+diagnostic = { modifiers = ["underlined"] }
+
+[palette]
+bogster-orange = "#dc7759"
+bogster-yellow = "#a58023"
+bogster-red = "#d32c5d"
+bogster-blue = "#59c0dc"
+bogster-gray = "#abb2bf"
+bogster-lgreen = "#7fdc59"
+bogster-lred = "#dc597f"
+bogster-lblue = "#289cbc"
+bogster-teal = "#23a580"
+
+bogster-fg1 = "#161c23"
+bogster-fg0 = "#232d38"
+
+bogster-base00 = "#d7dbbb"
+bogster-base0 = "#f6fbd6"
+bogster-base1 = "#c7c7ba"
+bogster-base2 = "#aaaa97"
+bogster-base3 = "#415367"
+bogster-base5 = "#627d9d"
+
diff --git a/runtime/themes/dark_high_contrast.toml b/runtime/themes/dark_high_contrast.toml
new file mode 100644
index 00000000..c65750f4
--- /dev/null
+++ b/runtime/themes/dark_high_contrast.toml
@@ -0,0 +1,105 @@
+# GreasySlug : dark high contrast <9619abgoni@gmail.com>
+
+# Interface
+"ui.background" = { bg = "black" }
+"ui.window" = { fg = "aqua" }
+"special" = "orange" # file picker fuzzy match
+"ui.background.separator" = { fg = "white" }
+"ui.text" = "white"
+"ui.text.focus" = { modifiers = ["reversed"] } # file picker selected
+
+"ui.virtual.whitespace" = "gray"
+"ui.virtual.ruler" = { fg = "gray", bg = "white", modifiers = ["reversed"] }
+"ui.virtual.indent-guide" = "white"
+
+"ui.statusline" = { fg = "white", bg = "deep_blue" }
+"ui.statusline.inactive" = { fg = "gray" }
+"ui.statusline.normal" = { fg = "black", bg = "aqua" }
+"ui.statusline.insert" = { fg = "black", bg = "orange" }
+"ui.statusline.select" = { fg = "black", bg = "purple" }
+# "ui.statusline.separator" = { fg = "aqua", bg = "white" }
+
+"ui.cursor" = { fg = "black", bg = "white" }
+"ui.cursor.insert" = { fg = "black", bg = "white" }
+"ui.cursor.select" = { fg = "black", bg = "white" }
+"ui.cursor.match" = { bg = "white", modifiers = ["dim"] }
+"ui.cursor.primary" = { fg = "black", bg = "white", modifiers = ["slow_blink"] }
+
+"ui.cursor.secondary" = "white"
+"ui.cursorline.primary" = { fg = "orange", modifiers = ["underlined"] }
+"ui.cursorline.secondary" = { fg = "orange", modifiers = ["underlined"] }
+"ui.selection" = { fg = "deep_blue", bg = "white" }
+
+"ui.menu" = { fg = "white", bg = "deep_blue" }
+"ui.menu.selected" = { fg = "orange", modifiers = ["underlined"] }
+"ui.menu.scroll" = { fg = "aqua", bg = "black" }
+"ui.help" = { fg = "white", bg = "deep_blue" }
+
+"ui.popup" = { bg = "deep_blue" }
+"ui.popup.info" = { fg = "white", bg = "deep_blue" }
+
+"ui.gutter" = { bg = "black" }
+"ui.linenr" = { fg = "white", bg = "black" }
+"ui.linenr.selected" = { fg = "orange", bg = "black", modifiers = ["bold"] }
+
+# Diagnostic
+"diagnostic" = "white"
+"diagnostic.info" = { bg = "white", modifiers = ["underlined"] }
+"diagnostic.hint" = { fg = "yellow", modifiers = ["underlined"] }
+"diagnostic.warning" = { fg = "orange", modifiers = ["underlined"] }
+"diagnostic.error" = { fg = "red", modifiers = ["underlined"] }
+"info" = "white"
+"hint" = "yellow"
+"warning" = "orange"
+"error" = "red"
+"debug" = "red"
+
+"diff.plus" = "green"
+"diff.delta" ="blue"
+"diff.minus" = "pink"
+
+# Syntax high light
+"type" = { fg = "emerald_green" }
+"type.buildin" = "emerald_green"
+"comment" = { fg = "white" }
+"operator" = "white"
+"variable" = { fg = "aqua" }
+"variable.other.member" = "brown"
+"constant" = "aqua"
+"constant.numeric" = "emerald_green"
+"attributes" = { fg = "blue" }
+"namespace" = "blue"
+"string" = "brown"
+"string.special.url" = { fg = "brown", modifiers =["underlined"]}
+"constant.character.escape" = "yellow"
+"constructor" = "aqua"
+"keyword" = { fg = "blue", modifiers = ["underlined"] }
+"keyword.control" = "purple"
+"function" = "yellow"
+"label" = "blue"
+
+# Markup
+"markup.heading" = { fg = "yellow", modifiers = ["bold", "underlined"] }
+"markup.list" = { fg = "pink" }
+"markup.bold" = { fg = "emerald_green", modifiers = ["bold"] }
+"markup.italic" = { fg = "blue", modifiers = ["italic"] }
+"markup.link.url" = { fg = "blue", modifiers = ["underlined"] }
+"markup.link.text" = "pink"
+"markup.quote" = "yellow"
+"markup.raw" = "brown"
+
+[palette]
+black = "#000000"
+gray = "#585858"
+white = "#ffffff"
+blue = "#66a4ff"
+deep_blue = "#142743"
+aqua = "#6fc3df"
+purple = "#c586c0"
+red = "#b65f5f"
+pink = "#ff5c8d"
+orange = "#f38518"
+brown = "#ce9178"
+yellow = "#cedc84"
+green = "#427a2d"
+emerald_green = "#4ec9b0"
diff --git a/runtime/themes/everforest_dark.toml b/runtime/themes/everforest_dark.toml
index 625e7df9..63997c9c 100644
--- a/runtime/themes/everforest_dark.toml
+++ b/runtime/themes/everforest_dark.toml
@@ -8,11 +8,12 @@
# Email: sainnhe@gmail.com
# License: MIT License
-"constant.character.escape" = "orange"
"type" = "yellow"
"constant" = "purple"
"constant.numeric" = "purple"
+"constant.character.escape" = "orange"
"string" = "green"
+"string.regexp" = "blue"
"comment" = "grey0"
"variable" = "fg"
"variable.builtin" = "blue"
@@ -23,6 +24,7 @@
"punctuation.delimiter" = "grey2"
"punctuation.bracket" = "fg"
"keyword" = "red"
+"keyword.directive" = "aqua"
"operator" = "orange"
"function" = "green"
"function.builtin" = "blue"
@@ -54,25 +56,33 @@
"diff.minus" = "red"
"ui.background" = { bg = "bg0" }
+"ui.background.separator" = "grey0"
"ui.cursor" = { fg = "bg0", bg = "fg" }
"ui.cursor.match" = { fg = "orange", bg = "bg_yellow" }
"ui.cursor.insert" = { fg = "bg0", bg = "grey1" }
"ui.cursor.select" = { fg = "bg0", bg = "blue" }
+"ui.cursorline.primary" = { bg = "bg1" }
+"ui.cursorline.secondary" = { bg = "bg1" }
+"ui.selection" = { bg = "bg3" }
"ui.linenr" = "grey0"
"ui.linenr.selected" = "fg"
-"ui.cursorline" = { bg = "bg1" }
-"ui.statusline" = { fg = "grey2", bg = "bg2" }
+"ui.statusline" = { fg = "grey2", bg = "bg3" }
"ui.statusline.inactive" = { fg = "grey0", bg = "bg1" }
-"ui.popup" = { fg = "grey2", bg = "bg1" }
-"ui.window" = { fg = "grey2", bg = "bg1" }
-"ui.help" = { fg = "fg", bg = "bg1" }
+"ui.statusline.normal" = { fg = "bg0", bg = "grey2", modifiers = ["bold"] }
+"ui.statusline.insert" = { fg = "bg0", bg = "yellow", modifiers = ["bold"] }
+"ui.statusline.select" = { fg = "bg0", bg = "blue", modifiers = ["bold"] }
+"ui.bufferline" = { fg = "grey0", bg = "bg1" }
+"ui.bufferline.active" = { fg = "fg", bg = "bg3", modifiers = ["bold"] }
+"ui.popup" = { fg = "grey2", bg = "bg2" }
+"ui.window" = { fg = "grey0", bg = "bg0" }
+"ui.help" = { fg = "fg", bg = "bg2" }
"ui.text" = "fg"
"ui.text.focus" = "fg"
-"ui.menu" = { fg = "fg", bg = "bg2" }
+"ui.menu" = { fg = "fg", bg = "bg3" }
"ui.menu.selected" = { fg = "bg0", bg = "green" }
-"ui.selection" = { bg = "bg3" }
-"ui.virtual.whitespace" = "grey0"
-"ui.virtual.ruler" = { bg = "bg1" }
+"ui.virtual.whitespace" = { fg = "bg4" }
+"ui.virtual.indent-guide" = { fg = "bg4" }
+"ui.virtual.ruler" = { bg = "bg3" }
"hint" = "blue"
"info" = "aqua"
@@ -80,7 +90,6 @@
"error" = "red"
"diagnostic" = { modifiers = ["underlined"] }
-
[palette]
bg0 = "#2b3339"
diff --git a/runtime/themes/everforest_light.toml b/runtime/themes/everforest_light.toml
index 43f94618..08876c0c 100644
--- a/runtime/themes/everforest_light.toml
+++ b/runtime/themes/everforest_light.toml
@@ -8,11 +8,12 @@
# Email: sainnhe@gmail.com
# License: MIT License
-"constant.character.escape" = "orange"
"type" = "yellow"
"constant" = "purple"
"constant.numeric" = "purple"
+"constant.character.escape" = "orange"
"string" = "green"
+"string.regexp" = "blue"
"comment" = "grey0"
"variable" = "fg"
"variable.builtin" = "blue"
@@ -23,6 +24,7 @@
"punctuation.delimiter" = "grey2"
"punctuation.bracket" = "fg"
"keyword" = "red"
+"keyword.directive" = "aqua"
"operator" = "orange"
"function" = "green"
"function.builtin" = "blue"
@@ -54,25 +56,33 @@
"diff.minus" = "red"
"ui.background" = { bg = "bg0" }
+"ui.background.separator" = "grey0"
"ui.cursor" = { fg = "bg0", bg = "fg" }
"ui.cursor.match" = { fg = "orange", bg = "bg_yellow" }
"ui.cursor.insert" = { fg = "bg0", bg = "grey1" }
"ui.cursor.select" = { fg = "bg0", bg = "blue" }
+"ui.cursorline.primary" = { bg = "bg1" }
+"ui.cursorline.secondary" = { bg = "bg1" }
+"ui.selection" = { bg = "bg3" }
"ui.linenr" = "grey0"
"ui.linenr.selected" = "fg"
-"ui.cursorline" = { bg = "bg1" }
-"ui.statusline" = { fg = "grey2", bg = "bg2" }
+"ui.statusline" = { fg = "grey2", bg = "bg3" }
"ui.statusline.inactive" = { fg = "grey0", bg = "bg1" }
-"ui.popup" = { fg = "grey2", bg = "bg1" }
-"ui.window" = { fg = "grey2", bg = "bg1" }
-"ui.help" = { fg = "fg", bg = "bg1" }
+"ui.statusline.normal" = { fg = "bg0", bg = "grey2", modifiers = ["bold"] }
+"ui.statusline.insert" = { fg = "bg0", bg = "yellow", modifiers = ["bold"] }
+"ui.statusline.select" = { fg = "bg0", bg = "blue", modifiers = ["bold"] }
+"ui.bufferline" = { fg = "grey0", bg = "bg1" }
+"ui.bufferline.active" = { fg = "fg", bg = "bg3", modifiers = ["bold"] }
+"ui.popup" = { fg = "grey2", bg = "bg2" }
+"ui.window" = { fg = "grey0", bg = "bg0" }
+"ui.help" = { fg = "fg", bg = "bg2" }
"ui.text" = "fg"
"ui.text.focus" = "fg"
-"ui.menu" = { fg = "fg", bg = "bg2" }
+"ui.menu" = { fg = "fg", bg = "bg3" }
"ui.menu.selected" = { fg = "bg0", bg = "green" }
-"ui.selection" = { bg = "bg3" }
-"ui.virtual.whitespace" = "grey0"
-"ui.virtual.ruler" = { bg = "bg1" }
+"ui.virtual.whitespace" = { fg = "bg4" }
+"ui.virtual.indent-guide" = { fg = "bg4" }
+"ui.virtual.ruler" = { bg = "bg3" }
"hint" = "blue"
"info" = "aqua"
@@ -80,7 +90,6 @@
"error" = "red"
"diagnostic" = { modifiers = ["underlined"] }
-
[palette]
bg0 = "#fff9e8"
diff --git a/runtime/themes/heisenberg.toml b/runtime/themes/heisenberg.toml
new file mode 100644
index 00000000..b20d3e9c
--- /dev/null
+++ b/runtime/themes/heisenberg.toml
@@ -0,0 +1,86 @@
+# Author: IrishMaestro <github.com/irishmaestro>
+
+# Syntax highlighting
+"type" = { fg = "crystal_blue" }
+"type.builtin" = { fg = "crystal_blue" }
+"constructor" = { fg = "barium_green" }
+"constant" = { fg = "hazmat_yellow" }
+"string" = { fg = "crystal_blue" }
+"string.regexp" = { fg = "orange" }
+"string.special" = { fg = "vapor_yellow" }
+"comment" = { fg = "teddy_bear_pink", modifiers = ["slow_blink", "italic"] }
+"variable" = { fg = "element_green" }
+"variable.parameter" = { fg = "hazmat_yellow" }
+"label" = { fg = "vapor_yellow" }
+"punctuation" = { fg = "barium_green" }
+"keyword" = { fg = "barium_green" }
+"keyword.control" = { fg = "barium_green" }
+"keyword.directive" = { fg = "teddy_bear_pink" }
+"operator" = { fg = "hazmat_yellow" }
+"function" = { fg = "cash_green", modifiers = ["bold"] }
+"tag" = { fg = "crystal_blue" }
+"namespace" = { fg = "hazmat_yellow" }
+"markup.heading" = { fg = "hazmat_yellow" }
+"markup.list" = { fg = "vapor_yellow" }
+"markup.raw.block" = { bg = "background", fg = "orange" }
+"markup.link.url" = { fg = "crystal_blue" }
+"markup.link.text" = { fg = "vapor_yellow" }
+"markup.link.label" = { fg = "barium_green" }
+"markup.quote" = { fg = "vapor_yellow" }
+"diff.plus" = { fg = "cash_green" }
+"diff.minus" = { fg = "chili_powder_red" }
+"diff.delta" = { fg = "orange" }
+
+# Interface
+"ui.background" = { bg = "background" }
+"ui.cursor" = { bg = "crystal_blue", fg = "background" }
+"ui.cursor.match" = { fg = "hazmat_yellow" }
+"ui.linenr" = { fg = "crystal_blue" }
+"ui.linenr.selected" = { fg = "barium_green" }
+"ui.statusline" = { fg = "crystal_blue", bg = "black" }
+"ui.statusline.normal" = { fg = "crystal_blue", bg = "black" }
+"ui.statusline.insert" = { fg = "barium_green", bg = "black"}
+"ui.statusline.select" = { fg = "hazmat_yellow", bg = "black" }
+"ui.cursorline.primary" = { bg = "#041B0E" }
+"ui.popup" = { fg = "crystal_blue", bg = "background" }
+"ui.window" = { fg = "barium_green" }
+"ui.help" = { fg = "crystal_blue", bg = "background"}
+"ui.text" = { fg = "crystal_blue" }
+"ui.text.focus" = { bg = "background", fg = "barium_green" }
+"ui.text.info" = { fg = "crystal_blue" }
+"ui.virtual.whitespace" = { fg = "#08341B" }
+"ui.virtual.ruler" = { bg = "#041B0E" }
+"ui.virtual.indent-guide" = { fg = "#08341B" }
+"ui.menu" = { fg = "crystal_blue", bg = "background" }
+"ui.menu.selected" = { bg = "hazmat_yellow", fg = "background" }
+"ui.selection" = { bg = "#1B0334" }
+"ui.selection.primary" = { bg = "desert_maroon" }
+"warning" = { fg = "vapor_yellow" }
+"error" = { fg = "chili_powder_red", modifiers = ["bold"] }
+"info" = { fg = "crystal_blue", modifiers = ["bold"] }
+"hint" = { fg = "crystal_blue", modifiers = ["bold"] }
+"diagnostic"= { fg = "chili_powder_red", modifiers = ["underlined"] }
+"diagnostic.info"= { fg = "crystal_blue", modifiers = ["underlined"] }
+"diagnostic.warning"= { fg = "vapor_yellow", modifiers = ["underlined"] }
+"diagnostic.error"= { fg = "chili_powder_red", modifiers = ["underlined"] }
+"ui.bufferline" = { fg = "gray", bg = "background" }
+"ui.bufferline.active" = { fg = "foreground", bg = "dark_gray" }
+
+"special" = { fg = "cash_green" }
+
+[palette]
+background = "#000000"
+foreground = "#cccccc"
+black = "#121212"
+dark_gray = "#2d3640"
+gray = "#5c6773"
+orange = "#ff8f40"
+barium_green = "#009669"
+hazmat_yellow = "#f7b90c"
+vapor_yellow = "#cecd19"
+teddy_bear_pink = "#bd5173"
+crystal_blue = "#32c9fa"
+cash_green = "#00ff80"
+element_green = "#186800"
+desert_maroon = "#2B0C02"
+chili_powder_red = "#c32101"
diff --git a/runtime/themes/kanagawa.toml b/runtime/themes/kanagawa.toml
new file mode 100644
index 00000000..50a7c0a7
--- /dev/null
+++ b/runtime/themes/kanagawa.toml
@@ -0,0 +1,125 @@
+# Kanagawa
+# Author: zetashift
+
+# Adaptation of https://github.com/rebelot/kanagawa.nvim
+# Original author: rebelot
+# All credits to the original author, the palette is taken from the README
+# because of some theming differences, it's not an exact copy of the original.
+
+## User interface
+"ui.selection" = { bg = "waveBlue1" }
+"ui.background" = { fg = "fujiWhite", bg = "sumiInk1" }
+
+"ui.linenr" = { fg = "sumiInk4" }
+
+"ui.statusline" = { fg = "oldWhite", bg = "sumiInk0" }
+"ui.statusline.inactive" = { fg = "fujiGray", bg = "sumiInk0" }
+"ui.statusline.normal" = { fg = "sumiInk0", bg = "crystalBlue", modifiers = ["bold"] }
+"ui.statusline.insert" = { fg = "sumiInk0", bg = "autumnGreen" }
+"ui.statusline.select" = { fg = "sumiInk0", bg = "oniViolet" }
+
+"ui.bufferline" = { fg = "oldWhite", bg = "sumiInk0" }
+"ui.bufferline.inactive" = { fg = "fujiGray", bg = "sumiInk0" }
+
+"ui.popup" = { fg = "fujiWhite", bg = "sumiInk0" }
+"ui.window" = { fg = "fujiWhite" }
+"ui.help" = { fg = "fujiWhite", bg = "waveBlue1" }
+"ui.text" = "fujiWhite"
+"ui.text.focus" = { fg = "fujiWhite", bg = "waveBlue1", modifiers = ["bold"] }
+"ui.virtual" = "waveBlue1"
+
+"ui.cursor" = { fg = "fujiWhite", bg = "waveBlue1"}
+"ui.cursor.primary" = { fg = "seaFoam", bg = "waveBlue1" }
+"ui.cursor.match" = { fg = "seaFoam", modifiers = ["bold"] }
+"ui.highlight" = { fg = "fujiWhite", bg = "waveBlue2" }
+
+diagnostic = { modifiers = ["underlined"] }
+
+error = "samuraiRed"
+warning = "roninYellow"
+info = "waveAqua1"
+hint = "dragonBlue"
+
+## Syntax highlighting
+"type" = "waveAqua2"
+"constant" = "surimiOrange"
+"constant.numeric" = "sakuraPink"
+"constant.character.escape" = "springBlue"
+"string" = "springGreen"
+"string.regexp" = "boatYellow2"
+"comment" = "fujiGray"
+"variable" = "fujiWhite"
+"variable.builtin" = "waveRed"
+"variable.parameter" = "carpYellow"
+"variable.other.member" = "carpYellow"
+"label" = "springBlue"
+"punctuation" = "springViolet2"
+"punctuation.delimiter" = "springViolet2"
+"punctuation.bracket" = "springViolet2"
+"keyword" = "oniViolet"
+"keyword.directive" = "peachRed"
+"operator" = "boatYellow2"
+"function" = "crystalBlue"
+"function.builtin" = "peachRed"
+"function.macro" = "waveRed"
+"tag" = "springBlue"
+"namespace" = "surimiOrange"
+"attribute" = "peachRed"
+"constructor" = "springBlue"
+"module" = "waveAqua2"
+"special" = "peachRed"
+
+## Markup modifiers
+"markup.heading.marker" = "fujiGray"
+"markup.heading.1" = { fg = "surimiOrange", modifiers = ["bold"] }
+"markup.heading.2" = { fg = "carpYellow", modifiers = ["bold"] }
+"markup.heading.3" = { fg = "waveAqua2", modifiers = ["bold"] }
+"markup.heading.4" = { fg = "springGreen", modifiers = ["bold"] }
+"markup.heading.5" = { fg = "waveRed", modifiers = ["bold"] }
+"markup.heading.6" = { fg = "autumnRed", modifiers = ["bold"] }
+"markup.list" = "oniViolet"
+"markup.bold" = { modifiers = ["bold"] }
+"markup.italic" = { modifiers = ["italic"] }
+"markup.link.url" = { fg = "springBlue", modifiers = ["underlined"] }
+"markup.link.text" = "crystalBlue"
+"markup.quote" = "seaFoam"
+"markup.raw" = "seaFoam"
+
+[palette]
+seaFoam = "#C7CCD1" # custom lighter foreground
+fujiWhite = "#DCD7BA" # default foreground
+oldWhite = "#C8C093" # dark foreground, e.g. statuslines
+sumiInk0 = "#16161D" # dark background, e.g. statuslines, floating windows
+sumiInk1 = "#1F1F28" # default background
+sumiInk3 = "#363646" # lighter background, e.g. colorcolumns and folds
+sumiInk4 = "#54546D" # darker foreground, e.g. linenumbers, fold column
+waveBlue1 = "#223249" # popup background, visual selection background
+waveBlue2 = "#2D4F67" # popup selection background, search background
+winterGreen = "#2B3328" # diff add background
+winterYellow = "#49443C" # diff change background
+winterRed = "#43242B" # diff deleted background
+winterBlue = "#252535" # diff line background
+autumnGreen = "#76946A" # git add
+autumnRed = "#C34043" # git delete
+autumnYellow = "#DCA561" # git change
+samuraiRed = "#E82424" # diagnostic error
+roninYellow = "#FF9E3B" # diagnostic warning
+waveAqua1 = "#6A9589" # diagnostic info
+dragonBlue = "#658594" # diagnostic hint
+fujiGray = "#727169" # comments
+springViolet1 = "#938AA9" # light foreground
+oniViolet = "#957FB8" # statements and keywords
+crystalBlue = "#7E9CD8" # functions and titles
+springViolet2 = "#9CABCA" # brackets and punctuation
+springBlue = "#7FB4CA" # specials and builtins
+lightBlue = "#A3D4D5" # not used!
+waveAqua2 = "#7AA89F" # types
+springGreen = "#98BB6C" # strings
+boatYellow1 = "#938056" # not used
+boatYellow2 = "#C0A36E" # operators, regex
+carpYellow = "#E6C384" # identifiers
+sakuraPink = "#D27E99" # numbers
+waveRed = "#E46876" # standout specials 1, e.g. builtin variables
+peachRed = "#FF5D62" # standout specials 2, e.g. exception handling, returns
+surimiOrange = "#FFA066" # constants, imports, booleans
+katanaGray = "#717C7C" # deprecated \ No newline at end of file
diff --git a/runtime/themes/monokai_pro_octagon.toml b/runtime/themes/monokai_pro_octagon.toml
index c6feae8c..8bcaeebc 100644
--- a/runtime/themes/monokai_pro_octagon.toml
+++ b/runtime/themes/monokai_pro_octagon.toml
@@ -18,6 +18,9 @@
# status bars, panels, modals, autocompletion
"ui.statusline" = { fg = "base8", bg = "base4" }
+"ui.statusline.normal" = { fg = "base4", bg = "blue" }
+"ui.statusline.insert" = { fg = "base4", bg = "green" }
+"ui.statusline.select" = { fg = "base4", bg = "purple" }
"ui.popup" = { bg = "base3" }
"ui.window" = { bg = "base3" }
"ui.help" = { fg = "base8", bg = "base3" }
diff --git a/runtime/themes/onedarker.toml b/runtime/themes/onedarker.toml
index 1ad6f7c3..665f10ed 100644
--- a/runtime/themes/onedarker.toml
+++ b/runtime/themes/onedarker.toml
@@ -2,7 +2,7 @@
"attribute" = { fg = "yellow" }
"comment" = { fg = "light-gray", modifiers = ["italic"] }
-"constant" = { fg = "green" }
+"constant" = { fg = "gold" }
"constant.numeric" = { fg = "gold" }
"constant.builtin" = { fg = "gold" }
"constant.character.escape" = { fg = "gold" }
@@ -69,7 +69,7 @@ diagnostic = { modifiers = ["underlined"] }
"ui.statusline.normal" = { fg = "light-black", bg = "purple" }
"ui.statusline.insert" = { fg = "light-black", bg = "green" }
"ui.statusline.select" = { fg = "light-black", bg = "cyan" }
-"ui.text" = { fg = "purple" }
+"ui.text" = { fg = "white" }
"ui.text.focus" = { fg = "white", bg = "light-black", modifiers = ["bold"] }
"ui.help" = { fg = "white", bg = "gray" }
@@ -91,7 +91,7 @@ cyan = "#46A6B2"
white = "#ABB2BF"
black = "#16181A"
light-black = "#2C323C"
-gray = "#454D50"
+gray = "#252D30"
faint-gray = "#ABB2BF"
-light-gray = "#C8CCD4"
+light-gray = "#636C6E"
linenr = "#282C34"
diff --git a/runtime/themes/pop-dark.toml b/runtime/themes/pop-dark.toml
index bac0d0f9..6ad0111b 100644
--- a/runtime/themes/pop-dark.toml
+++ b/runtime/themes/pop-dark.toml
@@ -43,7 +43,6 @@ module = { bg = 'orangeL' }
special = { fg = 'orangeW' }
operator = { fg = 'orangeY' }
attribute = { fg = 'orangeL' }
-attribute = { fg = 'orangeL' }
namespace = { fg = 'orangeL' }
'type' = { fg = 'redH' }
'type.builtin' = { fg = 'orangeL' }
diff --git a/runtime/themes/rose_pine.toml b/runtime/themes/rose_pine.toml
index 06be3083..14e240dd 100644
--- a/runtime/themes/rose_pine.toml
+++ b/runtime/themes/rose_pine.toml
@@ -79,6 +79,6 @@ rose = "#ebbcba"
pine = "#31748f"
foam = "#9ccfd8"
iris = "#c4a7e7"
-highlight = "#2a2837"
-highlightInactive = "#211f2d"
-highlightOverlay = "#3a384a"
+highlight = "#403d52"
+highlightInactive = "#21202e"
+highlightOverlay = "#524f67"
diff --git a/runtime/themes/rose_pine_dawn.toml b/runtime/themes/rose_pine_dawn.toml
index 129ae9c7..c6609c21 100644
--- a/runtime/themes/rose_pine_dawn.toml
+++ b/runtime/themes/rose_pine_dawn.toml
@@ -76,6 +76,6 @@ rose = "#d7827e"
pine = "#286983"
foam = "#56949f"
iris = "#907aa9"
-highlight = "#eee9e6"
-highlightInactive = "#f2ede9"
-highlightOverlay = "#e4dfde"
+highlight = "#dfdad9"
+highlightInactive = "#f4ede8"
+highlightOverlay = "#cecacd"
diff --git a/runtime/themes/rose_pine_moon.toml b/runtime/themes/rose_pine_moon.toml
index 4706bb17..fc27d2c0 100644
--- a/runtime/themes/rose_pine_moon.toml
+++ b/runtime/themes/rose_pine_moon.toml
@@ -83,6 +83,6 @@ rose = "#ea9a97"
pine = "#3e8fb0"
foam = "#9ccfd8"
iris = "#c4a7e7"
-highlight = "#2a283e"
-highlightInactive = "#44415a"
+highlight = "#44415a"
+highlightInactive = "#2a283e"
highlightOverlay = "#56526e"
diff --git a/runtime/themes/sonokai.toml b/runtime/themes/sonokai.toml
index 54804697..18417f00 100644
--- a/runtime/themes/sonokai.toml
+++ b/runtime/themes/sonokai.toml
@@ -58,7 +58,7 @@
"ui.selection" = { bg = "bg4" }
"ui.linenr" = "grey"
"ui.linenr.selected" = "fg"
-"ui.cursorline.primary" = { bg = "bg2" }
+"ui.cursorline.primary" = { bg = "bg1" }
"ui.statusline" = { fg = "fg", bg = "bg3" }
"ui.statusline.inactive" = { fg = "grey", bg = "bg1" }
"ui.popup" = { fg = "grey", bg = "bg2" }
@@ -86,7 +86,7 @@ bg0 = "#2c2e34"
bg1 = "#33353f"
bg2 = "#363944"
bg3 = "#3b3e48"
-bg4 = "#414550"
+bg4 = "#545862"
bg_red = "#ff6077"
diff_red = "#55393d"
bg_green = "#a7df78"
diff --git a/runtime/tutor b/runtime/tutor
index 8eef33af..43edb360 100644
--- a/runtime/tutor
+++ b/runtime/tutor
@@ -16,7 +16,7 @@ _________________________________________________________________
perform various actions with the text. This allows for more
efficient editing. This tutor will teach you how you can make
use of Helix's modal editing features. To begin, ensure your
- caps-lock key is not pressed and hold the j key until you reach
+ CapsLock key is not pressed and hold the j key until you reach
the first lesson.
@@ -31,7 +31,7 @@ _________________________________________________________________
The cursor can be moved using the h, j, k, l keys, as shown
- above. The cursor/arrow keys will also work, but it is faster
+ above. The cursor / arrow keys will also work, but it is faster
to use the hjkl keys as they are closer to the other keys you
will be using. Try moving around to get a feel for hjkl.
Once you're ready, hold j to continue to the next lesson.
@@ -48,13 +48,13 @@ _________________________________________________________________
1. Type : to enter Command mode. Your cursor will
move to the bottom of the screen.
- 2. Type q or quit and type <ENTER> to exit Helix.
+ 2. Type q or quit and type Enter to exit Helix.
Note: The quit command will fail if there are unsaved changes.
To force quit and DISCARD these changes, type q! or quit!.
You will learn how to save files later.
- To exit Command mode without entering a command, type <ESC>.
+ To exit Command mode without entering a command, type Escape.
Now, move on to the next lesson.
@@ -96,7 +96,7 @@ _________________________________________________________________
2. Move to a place in the line which is missing text and type
i to enter Insert mode. Keys you type will now type text.
3. Enter the missing text.
- 4. type <ESC> to exit Insert mode and return to Normal mode.
+ 4. type Escape to exit Insert mode and return to Normal mode.
5. Repeat until the line matches the line below it.
--> Th stce misg so.
@@ -112,18 +112,18 @@ _________________________________________________________________
= 1.5 SAVING A FILE =
=================================================================
- Type :w/:write to save a file.
+ Type :w / :write to save a file.
1. Exit Helix using :q! as explained before, or open a new
terminal.
2. Open a file in Helix by running: hx FILENAME
3. Make some edits to the file.
4. Type : to enter Command mode.
- 5. Type w or write, and type <ENTER> to save the file.
+ 5. Type w or write, and type Enter to save the file.
You can also type wq or write-quit to save and exit.
- Note: You can optionally enter a filepath after the w/write
+ Note: You can optionally enter a filepath after the w / write
command in order to save to that path.
Note: If there are any unsaved changes to a file, a plus [+]
will appear next to the file name in the status bar.
@@ -137,15 +137,15 @@ _________________________________________________________________
* Use the h,j,k,l keys to move the cursor.
* Type : to enter Command mode.
- * The q/quit and q!/quit! commands will exit Helix. The
+ * The q / quit and q! / quit! commands will exit Helix. The
former fails when there are unsaved changes. The latter
discards them.
- * The w/write command will save the file.
- * The wq/write-quit command will do both.
+ * The w / write command will save the file.
+ * The wq / write-quit command will do both.
* Type d to delete the character at the cursor.
- * Type i to enter Insert mode and type text. Type <ESC> to
+ * Type i to enter Insert mode and type text. Type Escape to
return to Normal mode.
@@ -167,7 +167,7 @@ _________________________________________________________________
A - Insert at the end of the line.
1. Move to anywhere in the line marked '-->' below.
- 2. Type A (<SHIFT> + a), your cursor will move to the end of
+ 2. Type A (Shift-a), your cursor will move to the end of
the line and you will be able to type.
3. Type the text necessary to match the line below.
@@ -207,7 +207,7 @@ _________________________________________________________________
* Type A to enter Insert mode at the end of a line.
- * Use o and O to open lines below/above the cursor respectively.
+ * Use o and O to open lines below and above the cursor respectively.
@@ -307,11 +307,11 @@ _________________________________________________________________
=================================================================
-= 3.5 SELECT/EXTEND MODE =
+= 3.5 SELECT / EXTEND MODE =
=================================================================
Type v to enter Select mode.
- Type v again or <ESC> to return to Normal mode
+ Type v again or Escape to return to Normal mode
In Select mode every movement will extend the selection, as
opposed to replacing it.
@@ -366,8 +366,8 @@ _________________________________________________________________
--> This is an error-free line with words to move around in.
- Note: This works the same in select mode.
- Note: Another related command is A-; which flips selections.
+ Note: This works the same in Select mode.
+ Note: Another related command is Alt-; which flips selections.
@@ -405,7 +405,7 @@ _________________________________________________________________
3. Type u to undo your deletion.
4. Fix all the errors on the line.
5. Type u several times to undo your fixes.
- 6. Type U (<SHIFT> + u) several times to redo your fixes.
+ 6. Type U (Shift-u) several times to redo your fixes.
--> Fiix the errors on thhis line and reeplace them witth undo.
@@ -434,32 +434,32 @@ _________________________________________________________________
1 banana 2 banana 3 banana 4
Note: Whenever you delete or change text, Helix will copy the
- altered text. Use alt-d/c instead to avoid this.
+ altered text. Use Alt-d / Alt-c instead to avoid this.
Note: Helix doesn't share the system clipboard by default. Type
- space-y/p to yank/paste on your computer's main clipboard.
+ Space + y / p to yank / paste on the system's clipboard.
=================================================================
= 4.3 SEARCHING IN FILE =
=================================================================
- Type / to search forward in file, enter to confirm search.
+ Type / to search forward in file, Enter to confirm search.
Type n to go to the next search match.
Type N to go to the previous search match.
1. Type / and type in a common word, like 'banana'.
- 2. Type enter to confirm the search.
+ 2. Type Enter to confirm the search.
3. Use n and N to cycle through the matches.
- Like the select command, searching also uses regex.
+ Searching uses regular expressions, allowing you to target more
+ complex expressions, which you'll learn about in the lesson on
+ the select command.
- Note: To search backwards, type ? (shift-/).
+ Note: To search backwards, type ? (Shift-/).
Note: Unlike Vim, ? doesn't change the search direction.
N always goes backwards and n always goes forwards.
-
-
=================================================================
= CHAPTER 4 RECAP =
=================================================================
@@ -467,7 +467,7 @@ _________________________________________________________________
* Type u to undo. Type U to redo.
* Type y to yank (copy) text and p to paste.
- * Use space-Y and space-P to yank/paste on the system
+ * Use Space + y and Space + p to yank / paste on the system
clipboard.
* Type / to search forward in file, and ? to search backwards.
@@ -488,7 +488,8 @@ _________________________________________________________________
Type C to duplicate the cursor to the next suitable line.
- 1. Move the cursor to the first line marked '-->' below.
+ 1. Move the cursor to the first line marked '-->' below. Place
+ the cursor somewhere past the '-->'.
2. Type C to duplicate the cursor to the next suitable line.
Notice how it skips the line in the middle. Keys you type
will now affect both cursors.
@@ -499,10 +500,9 @@ _________________________________________________________________
--> Fix th two nes at same ime.
-->
--> Fix th two nes at same ime.
-
Fix these two lines at the same time.
- Note: Type alt-C to do the same above the cursor.
+ Note: Type Alt-C to do the same above the cursor.
=================================================================
= 5.2 THE SELECT COMMAND =
@@ -513,11 +513,11 @@ _________________________________________________________________
1. Move the cursor to the line marked '-->' below.
2. Type x to select the line.
3. Type s. A prompt will appear.
- 4. Type 'apples' and type <ENTER>. Both occurrences of
+ 4. Type 'apples' and type Enter. Both occurrences of
'apples' in the line will be selected.
5. You can now type c and change 'apples' to something else,
like 'oranges'.
- 6. Type <ESC> to exit Insert mode.
+ 6. Type Escape to exit Insert mode.
7. Type , to remove the second cursor.
--> I like to eat apples since my favorite fruit is apples.
@@ -530,8 +530,8 @@ _________________________________________________________________
= 5.3 SELECTING VIA REGEX =
=================================================================
- The select command selects regular expressions, not just exact
- matches, allowing you to target more complex patterns.
+ Like searching, the select command selects regular expressions,
+ not just exact matches.
1. Move the cursor to the line marked '-->' below.
2. Select the line with x and then type s.
@@ -574,11 +574,11 @@ _________________________________________________________________
= 5.5 SPLIT SELECTION INTO LINES =
=================================================================
- Type A-s (Alt-s) to split the selection(s) on newlines.
+ Type Alt-s to split the selection(s) on newlines.
- 1. Move the first row of the table below.
+ 1. Move the cursor to the first row of the table below.
2. Select the entire table with 6x.
- 3. Type A-s to split into selections at each line.
+ 3. Type Alt-s to split into selections at each line.
4. Align the table with &.
| FRUIT | AMOUNT |
@@ -604,7 +604,7 @@ _________________________________________________________________
* Type & to align selections.
- * Type A-s to split the selection into lines.
+ * Type Alt-s to split the selection into lines.
@@ -627,7 +627,7 @@ _________________________________________________________________
2. Type f[ to select to the square bracket.
3. Type d to delete your selection.
4. Go to the end of the line and repeat with F].
- 5. Move to the second line marked -->, just after the arrow.
+ 5. Move to the second line marked '-->', just after the arrow.
6. Use t and T to delete the dashes around the sentence.
--> -----[Free this sentence of its brackets!]-----
@@ -663,16 +663,16 @@ _________________________________________________________________
=================================================================
Type . to repeat the last insert command.
- Type A-. to repeat the last f / t selection.
+ Type Alt-. to repeat the last f / t selection.
1. Move the cursor to the line marked '-->' below.
2. Make a change, insertion or appendage and repeat it with . .
- 3. Try using A-. with f and t, to select multiple sentences for
- instance.
+ 3. Try using Alt-. with f and t, to select multiple sentences
+ for instance.
--> This is some text for you to repeat things. You can repeat
- insertions like changing words, or repeat selections like f/t.
-
+ insertions like changing words, or repeat selections like
+ f / t.
@@ -690,7 +690,7 @@ _________________________________________________________________
* Type r to replace selected characters.
* Type . to repeat the last insertion.
- * Type A-. to repeat the last f / t selection.
+ * Type Alt-. to repeat the last f / t selection.
@@ -772,13 +772,13 @@ lines.
= 7.4 INCREMENTING AND DECREMENTING =
=================================================================
- Type C-a to increment the number under selection.
- Type C-x to decrement the number under selection.
+ Type Ctrl-a to increment the number under selection.
+ Type Ctrl-x to decrement the number under selection.
1. Move the cursor to the third line marked '-->' below.
- 2. Type C-a to increment the second point marked 2.
+ 2. Type Ctrl-a to increment the second point marked 2.
3. Repeat for the point marked 3.
- 4. Move to the last point and type C-x to decrement the 6.
+ 4. Move to the last point and type Ctrl-x to decrement the 6.
--> 1) First point.
--> 2) Added point.
@@ -800,8 +800,8 @@ lines.
* Type < and > to indent / outdent lines.
- * Type C-a to increment the selected number.
- * Type C-x to decrement the selected number.
+ * Type Ctrl-a to increment the selected number.
+ * Type Ctrl-x to decrement the selected number.
@@ -886,8 +886,9 @@ lines.
n and N both refer to register /, this means we can set that
register without having to type in a search.
- Type * to copy the primary selection into register /, setting
- the search term to the selection.
+ Type * to copy the selection into register /, setting the search
+ term to the selection. This copies the primary selection, which
+ you will learn about in the section on cycling selections.
1. Move the cursor to the line marked '-->' below.
2. Select "horse" with e and type *.
@@ -899,18 +900,17 @@ lines.
Note: * is like a shorthand for "/ y as all it really does is
copy the selection into the / register.
-
=================================================================
= 9.2 ADDING SELECTION ON NEXT SEARCH MATCH =
=================================================================
- A property of select mode (v) when using n and N is that instead
+ A property of Select mode (v) when using n and N is that instead
of moving the selection to the next match, it adds a new
selection on each match.
1. Move the cursor to the line marked '-->' below.
2. Select the first "bat" and type * to set it to search.
- 3. Type v to enter select mode.
+ 3. Type v to enter Select mode.
4. Type n to select the other "bat".
5. Use c or r to change the "bat"s to "cat".
@@ -930,15 +930,15 @@ lines.
searching or jumping to the definition of a function in code. It
stores these in what's called the jumplist.
- Type C-s (ctrl-s) to manually save your current position to
+ Type Ctrl-s to manually save your current position to
the jumplist.
- Type C-i ("in") and C-o ("out") to move forward and backwards in
- the jumplist respectively.
+ Type Ctrl-i ("in") and Ctrl-o ("out") to move forward and
+ backwards in the jumplist respectively.
- 1. Type C-s somewhere.
+ 1. Type Ctrl-s somewhere.
2. Move far away in the file.
- 3. Type C-o (just once!) to come back to where you saved.
+ 3. Type Ctrl-o (just once!) to come back to where you saved.
@@ -950,12 +950,12 @@ lines.
* Type * to set the search register to the primary selection.
- * Type n / N in visual mode to add selections on each search
+ * Type n / N in Visual mode to add selections on each search
match.
- * Type C-s to save position to the jumplist.
- * Type C-i and C-o to go forward and backward in the jumplist.
-
+ * Type Ctrl-s to save position to the jumplist.
+ * Type Ctrl-i and Ctrl-o to go forward and backward in the
+ jumplist.
@@ -967,25 +967,25 @@ lines.
=================================================================
-= 10.1 CYCLING AND REMOVING SELECIONS =
+= 10.1 CYCLING AND REMOVING SELECTIONS =
=================================================================
Type ) and ( to cycle the primary selection forward and backward
through selections respectively.
- Type A-, to remove the primary selection.
+ Type Alt-, to remove the primary selection.
1. Move the cursor to the line marked '-->' below.
2. Select both lines with xx or 2x.
3. Type s to select, type "would" and enter.
4. Use ( and ) to cycle the primary selection and remove the
- very second "would" with A-, .
+ very second "would" with Alt-, .
5. Type c "wood" to change the remaining "would"s to "wood".
--> How much would would a wouldchuck chuck
--> if a wouldchuck could chuck would?
- Note: Additionally, A-( and A-) cycle the *contents* of the
+ Note: Additionally, Alt-( and Alt-) cycle the *contents* of the
selections as well.
=================================================================
@@ -999,10 +999,10 @@ lines.
1. Move the cursor to the first line marked '-->' below.
2. Select each wrongly capitalised or lowercase letter
and type ~ over them.
- 3. Move to the second line marked -->.
+ 3. Move to the second line marked '-->'.
4. Type x to select the line.
5. Type ` to change the line to lowercase.
- 6. Move to the third line marked -->.
+ 6. Move to the third line marked '-->'.
7. Type x to select the line.
8. Type Alt-` to change the line to uppercase.
@@ -1018,13 +1018,13 @@ lines.
1. Move the cursor to the line under ---.
2. Type xx / 2x to select the lines.
- 3. Type S then \. |! <enter> (note the spaces after . and !).
+ 3. Type S then \. |! Enter (note the spaces after . and !).
This effectively splits the selection into sentences at each
dot or exclamation mark.
- 4. Type A-; to reverse the selections.
+ 4. Type Alt-; to reverse the selections.
5. Type ; to reduce selections to a single character - the first
letter of each sentence.
- 6. Type A-` to convert all selected letters to uppercase.
+ 6. Type Alt-` to convert all selected letters to uppercase.
---
these are sentences. some sentences don't start with uppercase
@@ -1038,10 +1038,10 @@ letters! that is not good grammar. you can fix this.
* Use ) and ( to cycle the primary selection back and forward
through selections respectively.
- * Type A-, to remove the primary selection.
+ * Type Alt-, to remove the primary selection.
* Type ~ to alternate case of selected letters.
- * Use ` and A-` to set the case of selected letters to
+ * Use ` and Alt-` to set the case of selected letters to
upper and lower respectively.
* Type S to split selections on regex.
@@ -1055,5 +1055,23 @@ letters! that is not good grammar. you can fix this.
=================================================================
+= =
+=================================================================
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+=================================================================
This tutorial is still a work-in-progress.
More sections are planned.