mirror of https://github.com/helix-editor/helix
Merge remote-tracking branch 'origin/master' into goto_next_reference
commit
45af0e9b76
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,9 @@
|
||||
use smartstring::{LazyCompact, SmartString};
|
||||
use textwrap::{Options, WordSplitter::NoHyphenation};
|
||||
|
||||
/// Given a slice of text, return the text re-wrapped to fit it
|
||||
/// within the given width.
|
||||
pub fn reflow_hard_wrap(text: &str, text_width: usize) -> SmartString<LazyCompact> {
|
||||
textwrap::refill(text, text_width).into()
|
||||
let options = Options::new(text_width).word_splitter(NoHyphenation);
|
||||
textwrap::refill(text, options).into()
|
||||
}
|
||||
|
@ -0,0 +1 @@
|
||||
; inherits: scheme
|
@ -0,0 +1,21 @@
|
||||
(comment) @comment
|
||||
(number) @constant.numeric
|
||||
(directive_name) @keyword.directive
|
||||
(symbol) @variable
|
||||
(label) @function
|
||||
(label)
|
||||
(instruction_prefix) @keyword
|
||||
(instruction_name) @function.special
|
||||
(register) @constant.builtin
|
||||
(string) @string
|
||||
(char) @constant.character
|
||||
(type) @type
|
||||
(constant "$" @constant)
|
||||
(operand_modifier) @attribute
|
||||
|
||||
(expression
|
||||
["-" "+" "*" "/" "="] @operator)
|
||||
|
||||
["(" ")"] @punctuation.bracket
|
||||
|
||||
["," ":"] @punctuation.delimiter
|
@ -0,0 +1,2 @@
|
||||
((comment) @injection.content
|
||||
(#set! injection.language "comment"))
|
@ -0,0 +1,2 @@
|
||||
(comment) @comment.inside
|
||||
(comment)+ @comment.around
|
@ -0,0 +1,11 @@
|
||||
(string) @string
|
||||
|
||||
(identifier) @constant
|
||||
|
||||
(number) @constant.numeric
|
||||
|
||||
(null) @constant.builtin
|
||||
|
||||
[(true) (false)] @constant.builtin.boolean
|
||||
|
||||
(comment) @comment
|
@ -0,0 +1,3 @@
|
||||
(node_children) @indent
|
||||
|
||||
"}" @outdent
|
@ -0,0 +1,27 @@
|
||||
(type (_) @test.inside) @test.around
|
||||
|
||||
(node
|
||||
children: (node_children)? @class.inside) @class.around
|
||||
|
||||
(node
|
||||
children: (node_children)? @function.inside) @function.around
|
||||
|
||||
(node (identifier) @function.movement)
|
||||
|
||||
[
|
||||
(single_line_comment)
|
||||
(multi_line_comment)
|
||||
] @comment.inside
|
||||
|
||||
[
|
||||
(single_line_comment)+
|
||||
(multi_line_comment)+
|
||||
] @comment.around
|
||||
|
||||
[
|
||||
(prop)
|
||||
(value)
|
||||
] @parameter.inside
|
||||
|
||||
(value (type) ? (_) @parameter.inside @parameter.movement . ) @parameter.around
|
||||
|
@ -0,0 +1,15 @@
|
||||
; Scopes
|
||||
|
||||
[
|
||||
(class_declaration)
|
||||
(function_declaration)
|
||||
] @local.scope
|
||||
|
||||
; Definitions
|
||||
|
||||
(type_parameter
|
||||
(type_identifier) @local.definition)
|
||||
|
||||
; References
|
||||
|
||||
(type_identifier) @local.reference
|
@ -0,0 +1,19 @@
|
||||
[
|
||||
"SYSCONFIG"
|
||||
"BLOCK"
|
||||
"LOCATE"
|
||||
"COMP"
|
||||
"FREQUENCY"
|
||||
"PORT"
|
||||
"IOBUF"
|
||||
] @keyword
|
||||
|
||||
["SITE"] @keyword.storage
|
||||
|
||||
["="] @operator
|
||||
|
||||
((number) @constant.numeric)
|
||||
|
||||
((string) @string)
|
||||
((line_comment) @comment)
|
||||
|
@ -1 +1,149 @@
|
||||
; inherits: haskell
|
||||
; ----------------------------------------------------------------------------
|
||||
; Literals and comments
|
||||
|
||||
(integer) @constant.numeric.integer
|
||||
(exp_negation) @constant.numeric.integer
|
||||
(exp_literal (number)) @constant.numeric.float
|
||||
(char) @constant.character
|
||||
[
|
||||
(string)
|
||||
(triple_quote_string)
|
||||
] @string
|
||||
|
||||
(comment) @comment
|
||||
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; Punctuation
|
||||
|
||||
[
|
||||
"("
|
||||
")"
|
||||
"{"
|
||||
"}"
|
||||
"["
|
||||
"]"
|
||||
] @punctuation.bracket
|
||||
|
||||
[
|
||||
(comma)
|
||||
";"
|
||||
] @punctuation.delimiter
|
||||
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; Keywords, operators, includes
|
||||
|
||||
; This needs to come before the other "else" in
|
||||
; order to be highlighted correctly
|
||||
(class_instance "else" @keyword)
|
||||
|
||||
[
|
||||
"if"
|
||||
"then"
|
||||
"else"
|
||||
"case"
|
||||
"of"
|
||||
] @keyword.control.conditional
|
||||
|
||||
[
|
||||
"import"
|
||||
"module"
|
||||
] @keyword.control.import
|
||||
|
||||
[
|
||||
(operator)
|
||||
(constructor_operator)
|
||||
(type_operator)
|
||||
(qualified_module) ; grabs the `.` (dot), ex: import System.IO
|
||||
(all_names)
|
||||
|
||||
; `_` wildcards in if-then-else and case-of expressions,
|
||||
; as well as record updates and operator sections
|
||||
(wildcard)
|
||||
"="
|
||||
"|"
|
||||
"::"
|
||||
"∷"
|
||||
"=>"
|
||||
"⇒"
|
||||
"<="
|
||||
"⇐"
|
||||
"->"
|
||||
"→"
|
||||
"<-"
|
||||
"←"
|
||||
"\\"
|
||||
"`"
|
||||
"@"
|
||||
] @operator
|
||||
|
||||
(qualified_module (module) @constructor)
|
||||
(module) @namespace
|
||||
(qualified_type (module) @namespace)
|
||||
(qualified_variable (module) @namespace)
|
||||
(import (module) @namespace)
|
||||
|
||||
[
|
||||
(where)
|
||||
"let"
|
||||
"in"
|
||||
"class"
|
||||
"instance"
|
||||
"derive"
|
||||
"foreign"
|
||||
"data"
|
||||
"newtype"
|
||||
"type"
|
||||
"as"
|
||||
"hiding"
|
||||
"do"
|
||||
"ado"
|
||||
"forall"
|
||||
"∀"
|
||||
"infix"
|
||||
"infixl"
|
||||
"infixr"
|
||||
] @keyword
|
||||
|
||||
(type_role_declaration
|
||||
"role" @keyword
|
||||
role: (type_role) @keyword)
|
||||
|
||||
(hole) @label
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; Functions and variables
|
||||
|
||||
(row_field (field_name) @variable.other.member)
|
||||
(record_field (field_name) @variable.other.member)
|
||||
(record_accessor (variable) @variable.other.member)
|
||||
(exp_record_access (variable) @variable.other.member)
|
||||
|
||||
(signature name: (variable) @type)
|
||||
(function name: (variable) @function)
|
||||
(class_instance (instance_name) @function)
|
||||
(derive_declaration (instance_name) @function)
|
||||
|
||||
; true or false
|
||||
((variable) @constant.builtin.boolean
|
||||
(#match? @constant.builtin.boolean "^(true|false)$"))
|
||||
|
||||
; The former one works for `tree-sitter highlight` but not in Helix/Kakoune.
|
||||
; The latter two work in Helix (but not Kakoune) and are a good compromise between not highlighting anything at all
|
||||
; as an operator and leaving it to the child nodes, and highlighting everything as an operator.
|
||||
(exp_ticked (_) @operator)
|
||||
(exp_ticked (exp_name (variable) @operator))
|
||||
(exp_ticked (exp_name (qualified_variable (variable) @operator)))
|
||||
|
||||
(variable) @variable
|
||||
|
||||
("@" @namespace) ; "as" pattern operator, e.g. x@Constructor
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; Types
|
||||
|
||||
(type) @type
|
||||
|
||||
(constructor) @constructor
|
||||
|
||||
|
@ -1 +1,2 @@
|
||||
; inherits: haskell
|
||||
((comment) @injection.content
|
||||
(#set! injection.language "comment"))
|
||||
|
@ -1 +1,4 @@
|
||||
; inherits: haskell
|
||||
(signature name: (variable)) @local.definition
|
||||
(function name: (variable)) @local.definition
|
||||
(pat_name (variable)) @local.definition
|
||||
(exp_name (variable)) @local.reference
|
||||
|
@ -0,0 +1,13 @@
|
||||
(comment) @comment.inside
|
||||
|
||||
[
|
||||
(data)
|
||||
(type)
|
||||
(newtype)
|
||||
] @class.around
|
||||
|
||||
((signature)? (function rhs:(_) @function.inside)) @function.around
|
||||
(exp_lambda) @function.around
|
||||
|
||||
(data (type_variable) @parameter.inside)
|
||||
(patterns (_) @parameter.inside)
|
@ -0,0 +1 @@
|
||||
; inherits: scheme
|
@ -1 +1,43 @@
|
||||
; inherits: rust
|
||||
; Literals
|
||||
;------------
|
||||
|
||||
(string) @string
|
||||
(boolean) @constant.builtin.boolean
|
||||
(integer) @constant.numeric.integer
|
||||
(float) @constant.numeric.float
|
||||
(char) @constant.character
|
||||
|
||||
; Structs
|
||||
;------------
|
||||
|
||||
(enum_variant) @type.enum.variant
|
||||
(struct_entry (_) @variable.other.member ":")
|
||||
(struct_name (identifier)) @type
|
||||
|
||||
|
||||
|
||||
|
||||
; Comments
|
||||
;------------
|
||||
|
||||
(line_comment) @comment.line
|
||||
(block_comment) @comment.block
|
||||
|
||||
|
||||
; Punctuation
|
||||
;------------
|
||||
|
||||
"," @punctuation.delimiter
|
||||
":" @punctuation.delimiter
|
||||
|
||||
"(" @punctuation.bracket
|
||||
")" @punctuation.bracket
|
||||
"[" @punctuation.bracket
|
||||
"]" @punctuation.bracket
|
||||
"{" @punctuation.bracket
|
||||
"}" @punctuation.bracket
|
||||
|
||||
|
||||
; Special
|
||||
;------------
|
||||
(escape_sequence) @constant.character.escape
|
||||
|
@ -1 +1,12 @@
|
||||
; inherits: rust
|
||||
[
|
||||
(array)
|
||||
(map)
|
||||
(tuple)
|
||||
(struct)
|
||||
] @indent
|
||||
|
||||
[
|
||||
"}"
|
||||
"]"
|
||||
")"
|
||||
] @outdent
|
||||
|
@ -1 +1,2 @@
|
||||
; inherits: rust
|
||||
([(line_comment) (block_comment)] @injection.content
|
||||
(#set! injection.language "comment"))
|
||||
|
@ -0,0 +1,43 @@
|
||||
; This roughly follows the description at: https://github.com/ds26gte/scmindent#how-subforms-are-indented
|
||||
|
||||
; Exclude literals in the first patterns, since different rules apply for them.
|
||||
; Similarly, exclude certain keywords (detected by a regular expression).
|
||||
; If a list has 2 elements on the first line, it is aligned to the second element.
|
||||
(list . (_) @first . (_) @anchor
|
||||
(#same-line? @first @anchor)
|
||||
(#set! "scope" "tail")
|
||||
(#not-kind-eq? @first "boolean") (#not-kind-eq? @first "character") (#not-kind-eq? @first "string") (#not-kind-eq? @first "number")
|
||||
(#not-match? @first "def.*|let.*|set!")) @align
|
||||
; If the first element in a list is also a list and on a line by itself, the outer list is aligned to it
|
||||
(list . (list) @anchor .
|
||||
(#set! "scope" "tail")
|
||||
(#not-kind-eq? @first "boolean") (#not-kind-eq? @first "character") (#not-kind-eq? @first "string") (#not-kind-eq? @first "number")) @align
|
||||
(list . (list) @anchor . (_) @second
|
||||
(#not-same-line? @anchor @second)
|
||||
(#set! "scope" "tail")
|
||||
(#not-kind-eq? @first "boolean") (#not-kind-eq? @first "character") (#not-kind-eq? @first "string") (#not-kind-eq? @first "number")
|
||||
(#not-match? @first "def.*|let.*|set!")) @align
|
||||
; If the first element in a list is not a list and on a line by itself, the outer list is aligned to
|
||||
; it plus 1 additional space. This cannot currently be modelled exactly by our indent queries,
|
||||
; but the following is equivalent, assuming that:
|
||||
; - the indent width is 2 (the default for scheme)
|
||||
; - There is no space between the opening parenthesis of the list and the first element
|
||||
(list . (_) @first .
|
||||
(#not-kind-eq? @first "boolean") (#not-kind-eq? @first "character") (#not-kind-eq? @first "string") (#not-kind-eq? @first "number")
|
||||
(#not-match? @first "def.*|let.*|set!")) @indent
|
||||
(list . (_) @first . (_) @second
|
||||
(#not-same-line? @first @second)
|
||||
(#not-kind-eq? @first "boolean") (#not-kind-eq? @first "character") (#not-kind-eq? @first "string") (#not-kind-eq? @first "number")
|
||||
(#not-match? @first "def.*|let.*|set!")) @indent
|
||||
|
||||
; If the first element in a list is a literal, align the list to it
|
||||
(list . [(boolean) (character) (string) (number)] @anchor
|
||||
(#set! "scope" "tail")) @align
|
||||
|
||||
; If the first element is among a set of predefined keywords, align the list to this element
|
||||
; plus 1 space (using the same workaround as above for now). This is a simplification since actually
|
||||
; the second line of the list should be indented by 2 spaces more in some cases. Supporting this would
|
||||
; be possible but require significantly more patterns.
|
||||
(list . (symbol) @first
|
||||
(#match? @first "def.*|let.*|set!")) @indent
|
||||
|
@ -0,0 +1,99 @@
|
||||
(package_identifier) @namespace
|
||||
|
||||
(parameter_declaration (identifier) @variable.parameter)
|
||||
(variadic_parameter_declaration (identifier) @variable.parameter)
|
||||
|
||||
(function_declaration
|
||||
name: (identifier) @function)
|
||||
|
||||
(type_spec name: (type_identifier) @type)
|
||||
(type_identifier) @type
|
||||
(field_identifier) @variable.other.member
|
||||
(identifier) @variable
|
||||
|
||||
; Function calls
|
||||
|
||||
(call_expression
|
||||
function: (identifier) @function)
|
||||
|
||||
(call_expression
|
||||
function: (selector_expression
|
||||
field: (field_identifier) @function))
|
||||
|
||||
;
|
||||
; These are Templ specific
|
||||
;
|
||||
|
||||
(component_declaration
|
||||
name: (component_identifier) @function)
|
||||
|
||||
(tag_start) @tag
|
||||
(tag_end) @tag
|
||||
(self_closing_tag) @tag
|
||||
(style_element) @tag
|
||||
|
||||
(attribute
|
||||
name: (attribute_name) @attribute)
|
||||
(attribute
|
||||
value: (quoted_attribute_value) @string)
|
||||
|
||||
(element_text) @string.special
|
||||
(style_element_text) @string.special
|
||||
|
||||
(css_property
|
||||
name: (css_property_name) @attribute)
|
||||
|
||||
(expression) @function.method
|
||||
(dynamic_class_attribute_value) @function.method
|
||||
|
||||
(component_import
|
||||
name: (component_identifier) @function)
|
||||
|
||||
(component_render) @function
|
||||
|
||||
[
|
||||
"@"
|
||||
] @operator
|
||||
|
||||
[
|
||||
"func"
|
||||
"var"
|
||||
"const"
|
||||
"templ"
|
||||
"css"
|
||||
"type"
|
||||
"struct"
|
||||
"range"
|
||||
"script"
|
||||
] @keyword.storage.type
|
||||
|
||||
[
|
||||
"return"
|
||||
] @keyword.control.return
|
||||
|
||||
[
|
||||
"import"
|
||||
"package"
|
||||
] @keyword.control.import
|
||||
|
||||
[
|
||||
"else"
|
||||
"case"
|
||||
"switch"
|
||||
"if"
|
||||
"default"
|
||||
] @keyword.control.conditional
|
||||
|
||||
"for" @keyword.control.repeat
|
||||
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
(rune_literal)
|
||||
] @string
|
||||
|
||||
; Comments
|
||||
|
||||
(comment) @comment
|
||||
|
||||
(element_comment) @comment
|
@ -0,0 +1,4 @@
|
||||
((script_block_text) @injection.content (#set! injection.language "javascript"))
|
||||
((script_element_text) @injection.content (#set! injection.language "javascript"))
|
||||
|
||||
((style_element_text) @injection.content (#set! injection.language "css"))
|
@ -0,0 +1,77 @@
|
||||
(call
|
||||
item: (ident) @function)
|
||||
(call
|
||||
item: (field field: (ident) @function.method))
|
||||
(tagged field: (ident) @tag)
|
||||
(field field: (ident) @tag)
|
||||
(comment) @comment
|
||||
|
||||
; CONTROL
|
||||
(let "let" @keyword.storage.type)
|
||||
(branch ["if" "else"] @keyword.control.conditional)
|
||||
(while "while" @keyword.control.repeat)
|
||||
(for ["for" "in"] @keyword.control.repeat)
|
||||
(import "import" @keyword.control.import)
|
||||
(as "as" @keyword.operator)
|
||||
(include "include" @keyword.control.import)
|
||||
(show "show" @keyword.control)
|
||||
(set "set" @keyword.control)
|
||||
(return "return" @keyword.control)
|
||||
(flow ["break" "continue"] @keyword.control)
|
||||
|
||||
; OPERATOR
|
||||
(in ["in" "not"] @keyword.operator)
|
||||
(and "and" @keyword.operator)
|
||||
(or "or" @keyword.operator)
|
||||
(not "not" @keyword.operator)
|
||||
(sign ["+" "-"] @operator)
|
||||
(add "+" @operator)
|
||||
(sub "-" @operator)
|
||||
(mul "*" @operator)
|
||||
(div "/" @operator)
|
||||
(cmp ["==" "<=" ">=" "!=" "<" ">"] @operator)
|
||||
(fraction "/" @operator)
|
||||
(fac "!" @operator)
|
||||
(attach ["^" "_"] @operator)
|
||||
(wildcard) @operator
|
||||
|
||||
; VALUE
|
||||
(raw_blck "```" @operator) @markup.raw.block
|
||||
(raw_span "`" @operator) @markup.raw.block
|
||||
(raw_blck lang: (ident) @tag)
|
||||
(label) @tag
|
||||
(ref) @tag
|
||||
(number) @constant.numeric
|
||||
(string) @string
|
||||
(content ["[" "]"] @operator)
|
||||
(bool) @constant.builtin.boolean
|
||||
(builtin) @constant.builtin
|
||||
(none) @constant.builtin
|
||||
(auto) @constant.builtin
|
||||
(ident) @variable
|
||||
(call
|
||||
item: (builtin) @function.builtin)
|
||||
|
||||
; MARKUP
|
||||
(item "-" @markup.list)
|
||||
(term ["/" ":"] @markup.list)
|
||||
(heading ["=" "==" "===" "====" "====="] @markup.heading.marker) @markup.heading
|
||||
(url) @tag
|
||||
(emph) @markup.italic
|
||||
(strong) @markup.bold
|
||||
(symbol) @constant.character
|
||||
(shorthand) @constant.builtin
|
||||
(quote) @markup.quote
|
||||
(align) @operator
|
||||
(letter) @constant.character
|
||||
(linebreak) @constant.builtin
|
||||
|
||||
(math "$" @operator)
|
||||
"#" @operator
|
||||
"end" @operator
|
||||
|
||||
(escape) @constant.character.escape
|
||||
["(" ")" "{" "}"] @punctuation.bracket
|
||||
["," ";" ".." ":" "sep"] @punctuation.delimiter
|
||||
"assign" @punctuation
|
||||
(field "." @punctuation)
|
@ -0,0 +1,6 @@
|
||||
(raw_blck
|
||||
(blob) @injection.shebang @injection.content)
|
||||
|
||||
(raw_blck
|
||||
lang: (ident) @injection.language
|
||||
(blob) @injection.content)
|
@ -0,0 +1,154 @@
|
||||
# An approximation/port of the Cyan Light Theme from Jetbrains
|
||||
#
|
||||
# Original Color Scheme here https://plugins.jetbrains.com/plugin/12102-cyan-light-theme
|
||||
|
||||
"attribute" = "blue"
|
||||
"type" = "shade07"
|
||||
"type.enum.variant" = "purple"
|
||||
"constructor" = "shade07"
|
||||
|
||||
"constant" = "darker_blue"
|
||||
"constant.builtin.boolean" = "blue"
|
||||
"constant.character" = "blue"
|
||||
"constant.character.escape" = "dark_red"
|
||||
"constant.numeric" = "blue"
|
||||
|
||||
"string" = "green"
|
||||
"string.regexp" = "blue"
|
||||
"string.special" = { fg = "dark_red", modifiers = ["underlined"] }
|
||||
|
||||
"comment" = "comment_gray"
|
||||
|
||||
"variable" = "green_blue"
|
||||
"variable.builtin" = { fg = "darker_blue" }
|
||||
"variable.parameter" = "purple"
|
||||
"variable.other.member" = "purple"
|
||||
|
||||
"label" = { fg = "darker_blue", modifiers = ["underlined"] }
|
||||
"punctuation" = "shade06"
|
||||
|
||||
"keyword" = "darker_blue"
|
||||
"keyword.control.exception" = "darker_blue"
|
||||
|
||||
"operator" = "shade06"
|
||||
|
||||
"function" = "shade07"
|
||||
"function.macro" = "yellow"
|
||||
"function.builtin" = { fg = "shade07", modifiers = ["italic"] }
|
||||
"function.special" = "dark_red"
|
||||
"function.method" = "dark_yellow"
|
||||
|
||||
"tag" = "darker_blue"
|
||||
"special" = "shade06"
|
||||
"namespace" = "darker_blue"
|
||||
|
||||
"markup.bold" = { fg = "shade06", modifiers = ["bold"] }
|
||||
"markup.italic" = { fg = "shade06", modifiers = ["italic"] }
|
||||
"markup.strikethrough" = { fg = "shade06", modifiers = ["crossed_out"] }
|
||||
"markup.heading" = { fg = "purple" }
|
||||
"markup.list" = "darker_blue"
|
||||
"markup.list.numbered" = "darker_blue"
|
||||
"markup.list.unnumbered" = "darker_blue"
|
||||
"markup.link.url" = "shade06"
|
||||
"markup.link.text" = { fg = "dark_blue", modifiers = ['underlined'] }
|
||||
"markup.link.label" = "dark_blue"
|
||||
"markup.quote" = "green"
|
||||
"markup.raw" = "green"
|
||||
"markup.raw.inline" = "green"
|
||||
"markup.raw.block" = "green"
|
||||
|
||||
"diff.plus" = "green"
|
||||
"diff.plus.gutter" = "gutter_green"
|
||||
"diff.minus" = "red"
|
||||
"diff.minus.gutter" = "gutter_red"
|
||||
"diff.delta" = "blue"
|
||||
"diff.delta.gutter" = "gutter_blue"
|
||||
|
||||
# ui specific
|
||||
"ui.background" = { bg = "shade00" }
|
||||
"ui.cursor" = { bg = "shade02" }
|
||||
"ui.cursor.primary" = { bg = "cursor_blue" }
|
||||
"ui.cursor.match" = { fg = "shade00", bg = "shade04" }
|
||||
"ui.cursor.primary.select" = { bg = "light_purple" }
|
||||
"ui.cursor.primary.insert" = { bg = "light_green" }
|
||||
|
||||
"ui.selection" = { bg = "lighter_blue" }
|
||||
"ui.selection.primary" = { bg = "lighter_blue" }
|
||||
|
||||
"ui.highlight" = { bg = "faint_blue" }
|
||||
"ui.cursorline.primary" = { bg = "faint_blue" }
|
||||
|
||||
"ui.linenr" = { fg = "shade03" }
|
||||
"ui.linenr.selected" = { fg = "shade04", bg = "faint_blue", modifiers = [
|
||||
"bold",
|
||||
] }
|
||||
|
||||
"ui.statusline" = { fg = "shade06", bg = "shade02" }
|
||||
"ui.statusline.inactive" = { fg = "shade04", bg = "shade01" }
|
||||
"ui.statusline.normal" = { fg = "shade00", bg = "blue" }
|
||||
"ui.statusline.insert" = { fg = "shade00", bg = "green" }
|
||||
"ui.statusline.select" = { fg = "shade00", bg = "purple" }
|
||||
|
||||
"ui.popup" = { bg = "shade01", fg = "shade04" }
|
||||
"ui.window" = { bg = "shade00", fg = "shade04" }
|
||||
"ui.help" = { fg = "shade06", bg = "shade01" }
|
||||
"ui.text" = "shade05"
|
||||
"ui.text.focus" = { fg = "shade07", bg = "light_blue" }
|
||||
"ui.virtual" = "shade03"
|
||||
"ui.virtual.ruler" = { bg = "shade04" }
|
||||
"ui.menu" = { fg = "shade05", bg = "shade01" }
|
||||
"ui.menu.selected" = { fg = "shade07", bg = "light_blue" }
|
||||
|
||||
"hint" = "shade04"
|
||||
"info" = "light_blue"
|
||||
"warning" = "orange"
|
||||
"error" = "red"
|
||||
"diagnostic" = { modifiers = [] }
|
||||
"diagnostic.hint" = { underline = { color = "shade04", style = "line" } }
|
||||
"diagnostic.info" = { underline = { color = "light_blue", style = "line" } }
|
||||
"diagnostic.warning" = { underline = { color = "orange", style = "curl" } }
|
||||
"diagnostic.error" = { underline = { color = "red", style = "curl" } }
|
||||
|
||||
[palette]
|
||||
shade00 = "#f2f3f7"
|
||||
shade01 = "#dadde8"
|
||||
shade02 = "#c1c6d9"
|
||||
shade03 = "#a9b0ca"
|
||||
shade04 = "#525c85"
|
||||
shade05 = "#434b6c"
|
||||
shade06 = "#343a54"
|
||||
shade07 = "#25293c"
|
||||
|
||||
background = "#f2f3f7"
|
||||
foreground = "#25293c"
|
||||
|
||||
comment_gray = "#808080"
|
||||
|
||||
gutter_blue = "#C3D6E8"
|
||||
faint_blue = "#E8Eef1"
|
||||
lighter_blue = "#d0eaff"
|
||||
light_blue = "#99ccff"
|
||||
cursor_blue = "#80bfff"
|
||||
blue = "#0073E6"
|
||||
dark_blue = "#185b93"
|
||||
darker_blue = "#000080"
|
||||
|
||||
|
||||
purple = "#660E7A"
|
||||
light_purple = "#ED9CFF"
|
||||
|
||||
gutter_green = "#C9DEC1"
|
||||
green = "#00733B"
|
||||
light_green = "#5DCE87"
|
||||
green_blue = "#458383"
|
||||
|
||||
|
||||
yellow = "#808000"
|
||||
dark_yellow = "#7A7A43"
|
||||
|
||||
light_orange = "#f9c881"
|
||||
orange = "#F49810"
|
||||
|
||||
gutter_red = "#EBBCBC"
|
||||
red = "#d90016"
|
||||
dark_red = "#7F0000"
|
@ -0,0 +1,114 @@
|
||||
# Author : Mehedi Hasan <mehedi.r137@gmail.com>
|
||||
# Based on : https://github.com/rexim/gruber-darker-theme
|
||||
|
||||
"attribute" = "fg0"
|
||||
"keyword" = { fg = "yellow0", modifiers = ["bold"] }
|
||||
"keyword.directive" = "quartz"
|
||||
"namespace" = "quartz"
|
||||
"punctuation" = "fg0"
|
||||
"punctuation.delimiter" = "fg0"
|
||||
"operator" = "fg0"
|
||||
"special" = { fg = "yellow0", modifiers = ["bold"] }
|
||||
"variable" = "fg0"
|
||||
"variable.builtin" = { fg = "yellow0", modifiers = ["bold"] }
|
||||
"variable.parameter" = "fg0"
|
||||
"type" = "quartz"
|
||||
"type.builtin" = "yellow0"
|
||||
"constructor" = { fg = "quartz" }
|
||||
"function" = "niagara0"
|
||||
"function.builtin" = "yellow0"
|
||||
"tag" = "niagara0"
|
||||
"comment" = { fg = "brown0" }
|
||||
"constant.character" = { fg = "green0" }
|
||||
"constant.character.escape" = { fg = "yellow0" }
|
||||
"constant.builtin" = { fg = "yellow0", modifiers = ["bold"] }
|
||||
"string" = "green0"
|
||||
"constant.numeric" = "wisteria"
|
||||
"label" = "fg0"
|
||||
"module" = "aqua1"
|
||||
|
||||
"diff.plus" = "green1"
|
||||
"diff.delta" = "orange1"
|
||||
"diff.minus" = "red0"
|
||||
|
||||
"warning" = { fg = "orange1", modifiers = ["bold"] }
|
||||
"error" = { fg = "red0", modifiers = ["bold"] }
|
||||
"info" = { fg = "aqua1", modifiers = ["bold"] }
|
||||
"hint" = { fg = "blue0", modifiers = ["bold"] }
|
||||
|
||||
"ui.background" = { bg = "bg0" }
|
||||
"ui.linenr" = { fg = "bg4" }
|
||||
"ui.linenr.selected" = { fg = "yellow0" }
|
||||
"ui.cursorline" = { bg = "bg1" }
|
||||
|
||||
"ui.statusline" = { fg = "fg0", bg = "bg1" }
|
||||
"ui.statusline.normal" = { fg = "bg1", bg = "yellow0", modifiers = ["bold"] }
|
||||
"ui.statusline.insert" = { fg = "bg1", bg = "blue0", modifiers = ["bold"] }
|
||||
"ui.statusline.select" = { fg = "bg1", bg = "wisteria", modifiers = ["bold"] }
|
||||
"ui.statusline.inactive" = { fg = "fg3", bg = "bg1" }
|
||||
|
||||
"ui.bufferline" = { fg = "fg3", bg = "bg6" }
|
||||
"ui.bufferline.active" = { fg = "fg0", bg = "bg7" }
|
||||
|
||||
"ui.popup" = { bg = "bg6" }
|
||||
"ui.window" = { fg = "bg1" }
|
||||
"ui.help" = { bg = "bg1", fg = "fg0" }
|
||||
"ui.text" = { fg = "fg0" }
|
||||
"ui.text.focus" = { bg = "bg5", modifiers = ["bold"] }
|
||||
"ui.selection" = { bg = "bg2" }
|
||||
"ui.selection.primary" = { bg = "bg5" }
|
||||
"ui.cursor.primary" = { bg = "fg0", fg = "niagara1" }
|
||||
"ui.cursor.match" = { bg = "yellow1" }
|
||||
"ui.menu" = { fg = "fg0", bg = "bg6" }
|
||||
"ui.menu.selected" = { fg = "fg0", bg = "bg5", modifiers = ["bold"] }
|
||||
|
||||
"ui.virtual.whitespace" = "bg8"
|
||||
"ui.virtual.indent-guide" = "bg8"
|
||||
"ui.virtual.ruler" = { bg = "bg1" }
|
||||
"ui.virtual.inlay-hint" = { fg = "bg7" }
|
||||
"ui.virtual.wrap" = { fg = "bg2" }
|
||||
|
||||
"diagnostic.warning" = { underline = { color = "orange1", style = "dashed" } }
|
||||
"diagnostic.error" = { underline = { color = "red3", style = "dashed" } }
|
||||
"diagnostic.info" = { underline = { color = "aqua1", style = "dashed" } }
|
||||
"diagnostic.hint" = { underline = { color = "blue0", style = "dashed" } }
|
||||
|
||||
"markup.heading" = { fg = "aqua1", modifiers = ["bold"] }
|
||||
"markup.bold" = { modifiers = ["bold"] }
|
||||
"markup.italic" = { modifiers = ["italic"] }
|
||||
"markup.strikethrough" = { modifiers = ["crossed_out"] }
|
||||
"markup.link.url" = { fg = "green1", modifiers = ["underlined"] }
|
||||
"markup.link.text" = "red3"
|
||||
"markup.raw" = { fg = "fg0", bg = "bg8", modifiers = ["bold"] }
|
||||
|
||||
[palette]
|
||||
fg0 = "#e4e4ef"
|
||||
fg1 = "#f4f4ff"
|
||||
fg2 = "#f5f5f5"
|
||||
fg3 = "#a89984"
|
||||
bg0 = "#181818"
|
||||
bg1 = "#282828"
|
||||
bg2 = "#453d41"
|
||||
bg4 = "#52494e"
|
||||
bg5 = "#404040"
|
||||
bg6 = "#232323"
|
||||
bg7 = "#3f3f3f"
|
||||
bg8 = "#2c2c2c"
|
||||
red0 = "#f43841"
|
||||
red1 = "#ff4f58"
|
||||
red2 = "#2B0A0B"
|
||||
red3 = "#fb4934"
|
||||
green0 = "#73c936"
|
||||
green1 = "#b8bb26"
|
||||
yellow0 = "#ffdd33"
|
||||
yellow1 = "#655814"
|
||||
blue0 = "#5292c8"
|
||||
orange0 = "#d65d0e"
|
||||
orange1 = "#fe8019"
|
||||
brown0 = "#cc8c3c"
|
||||
quartz = "#95a99f"
|
||||
niagara0 = "#96a6c8"
|
||||
niagara1 = "#303540"
|
||||
wisteria = "#9e95c7"
|
||||
aqua1 = "#8ec07c"
|
||||
|
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2019 sainnhe
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2018 arturoalviar
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2020 sainnhe
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
@ -0,0 +1,23 @@
|
||||
# Nord Night
|
||||
#
|
||||
# Based on the Nord theme, with minor modifications.
|
||||
# The Background and the Primary Text color have been slightly darkened.
|
||||
# The Aurora color palette has been used more generously.
|
||||
|
||||
inherits = 'nord'
|
||||
|
||||
'constant' = 'nord13'
|
||||
'constant.builtin.boolean' = 'nord13'
|
||||
'constant.numeric' = 'nord13'
|
||||
|
||||
'keyword.control' = 'nord11'
|
||||
'keyword.control.conditional' = 'nord11'
|
||||
'keyword.control.exception' = 'nord11'
|
||||
'keyword.control.repeat' = 'nord11'
|
||||
'keyword.control.return' = 'nord11'
|
||||
|
||||
'variable.parameter' = 'nord15'
|
||||
|
||||
[palette]
|
||||
nord0 = '#252933'
|
||||
nord4 = '#C0C5CF'
|
Loading…
Reference in New Issue