forked from Mirrors/helix
Merge branch 'master'
commit
46b135bdc5
@ -0,0 +1,26 @@
|
||||
# Publish the Nix flake outputs to Cachix
|
||||
name: Cachix
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
publish:
|
||||
name: Publish Flake
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout sources
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Install nix
|
||||
uses: cachix/install-nix-action@v18
|
||||
|
||||
- name: Authenticate with Cachix
|
||||
uses: cachix/cachix-action@v11
|
||||
with:
|
||||
name: helix
|
||||
authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
|
||||
|
||||
- name: Build nix flake
|
||||
run: nix build -L
|
@ -0,0 +1,129 @@
|
||||
use super::*;
|
||||
|
||||
#[tokio::test(flavor = "multi_thread")]
|
||||
async fn test_split_write_quit_all() -> anyhow::Result<()> {
|
||||
let mut file1 = tempfile::NamedTempFile::new()?;
|
||||
let mut file2 = tempfile::NamedTempFile::new()?;
|
||||
let mut file3 = tempfile::NamedTempFile::new()?;
|
||||
|
||||
let mut app = helpers::AppBuilder::new()
|
||||
.with_file(file1.path(), None)
|
||||
.build()?;
|
||||
|
||||
test_key_sequences(
|
||||
&mut app,
|
||||
vec![
|
||||
(
|
||||
Some(&format!(
|
||||
"ihello1<esc>:sp<ret>:o {}<ret>ihello2<esc>:sp<ret>:o {}<ret>ihello3<esc>",
|
||||
file2.path().to_string_lossy(),
|
||||
file3.path().to_string_lossy()
|
||||
)),
|
||||
Some(&|app| {
|
||||
let docs: Vec<_> = app.editor.documents().collect();
|
||||
assert_eq!(3, docs.len());
|
||||
|
||||
let doc1 = docs
|
||||
.iter()
|
||||
.find(|doc| doc.path().unwrap() == file1.path())
|
||||
.unwrap();
|
||||
|
||||
assert_eq!("hello1", doc1.text().to_string());
|
||||
|
||||
let doc2 = docs
|
||||
.iter()
|
||||
.find(|doc| doc.path().unwrap() == file2.path())
|
||||
.unwrap();
|
||||
|
||||
assert_eq!("hello2", doc2.text().to_string());
|
||||
|
||||
let doc3 = docs
|
||||
.iter()
|
||||
.find(|doc| doc.path().unwrap() == file3.path())
|
||||
.unwrap();
|
||||
|
||||
assert_eq!("hello3", doc3.text().to_string());
|
||||
|
||||
helpers::assert_status_not_error(&app.editor);
|
||||
assert_eq!(3, app.editor.tree.views().count());
|
||||
}),
|
||||
),
|
||||
(
|
||||
Some(":wqa<ret>"),
|
||||
Some(&|app| {
|
||||
helpers::assert_status_not_error(&app.editor);
|
||||
assert_eq!(0, app.editor.tree.views().count());
|
||||
}),
|
||||
),
|
||||
],
|
||||
true,
|
||||
)
|
||||
.await?;
|
||||
|
||||
helpers::assert_file_has_content(file1.as_file_mut(), "hello1")?;
|
||||
helpers::assert_file_has_content(file2.as_file_mut(), "hello2")?;
|
||||
helpers::assert_file_has_content(file3.as_file_mut(), "hello3")?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[tokio::test(flavor = "multi_thread")]
|
||||
async fn test_split_write_quit_same_file() -> anyhow::Result<()> {
|
||||
let mut file = tempfile::NamedTempFile::new()?;
|
||||
let mut app = helpers::AppBuilder::new()
|
||||
.with_file(file.path(), None)
|
||||
.build()?;
|
||||
|
||||
test_key_sequences(
|
||||
&mut app,
|
||||
vec![
|
||||
(
|
||||
Some("O<esc>ihello<esc>:sp<ret>ogoodbye<esc>"),
|
||||
Some(&|app| {
|
||||
assert_eq!(2, app.editor.tree.views().count());
|
||||
helpers::assert_status_not_error(&app.editor);
|
||||
|
||||
let mut docs: Vec<_> = app.editor.documents().collect();
|
||||
assert_eq!(1, docs.len());
|
||||
|
||||
let doc = docs.pop().unwrap();
|
||||
|
||||
assert_eq!(
|
||||
helpers::platform_line("hello\ngoodbye"),
|
||||
doc.text().to_string()
|
||||
);
|
||||
|
||||
assert!(doc.is_modified());
|
||||
}),
|
||||
),
|
||||
(
|
||||
Some(":wq<ret>"),
|
||||
Some(&|app| {
|
||||
helpers::assert_status_not_error(&app.editor);
|
||||
assert_eq!(1, app.editor.tree.views().count());
|
||||
|
||||
let mut docs: Vec<_> = app.editor.documents().collect();
|
||||
assert_eq!(1, docs.len());
|
||||
|
||||
let doc = docs.pop().unwrap();
|
||||
|
||||
assert_eq!(
|
||||
helpers::platform_line("hello\ngoodbye"),
|
||||
doc.text().to_string()
|
||||
);
|
||||
|
||||
assert!(!doc.is_modified());
|
||||
}),
|
||||
),
|
||||
],
|
||||
false,
|
||||
)
|
||||
.await?;
|
||||
|
||||
helpers::assert_file_has_content(
|
||||
file.as_file_mut(),
|
||||
&helpers::platform_line("hello\ngoodbye"),
|
||||
)?;
|
||||
|
||||
Ok(())
|
||||
}
|
@ -0,0 +1,231 @@
|
||||
; highlights.scm
|
||||
;
|
||||
; Highlighting queries for D code for use by Tree-Sitter.
|
||||
;
|
||||
; Copyright 2022 Garrett D'Amore
|
||||
;
|
||||
; Distributed under the MIT License.
|
||||
; (See accompanying file LICENSE.txt or https://opensource.org/licenses/MIT)
|
||||
; SPDX-License-Identifier: MIT
|
||||
|
||||
; these are listed first, because they override keyword queries
|
||||
(identity_expression (in) @operator)
|
||||
(identity_expression (is) @operator)
|
||||
|
||||
(storage_class) @keyword.storage
|
||||
|
||||
(function_declaration (identifier) @function)
|
||||
|
||||
(call_expression (identifier) @function)
|
||||
(call_expression (type (identifier) @function))
|
||||
|
||||
(module_fqn) @namespace
|
||||
|
||||
[
|
||||
(abstract)
|
||||
(alias)
|
||||
(align)
|
||||
(asm)
|
||||
(assert)
|
||||
(auto)
|
||||
(cast)
|
||||
(const)
|
||||
(debug)
|
||||
(delete)
|
||||
(deprecated)
|
||||
(export)
|
||||
(extern)
|
||||
(final)
|
||||
(immutable)
|
||||
(in)
|
||||
(inout)
|
||||
(invariant)
|
||||
(is)
|
||||
(lazy)
|
||||
; "macro" - obsolete
|
||||
(mixin)
|
||||
(module)
|
||||
(new)
|
||||
(nothrow)
|
||||
(out)
|
||||
(override)
|
||||
(package)
|
||||
(pragma)
|
||||
(private)
|
||||
(protected)
|
||||
(public)
|
||||
(pure)
|
||||
(ref)
|
||||
(scope)
|
||||
(shared)
|
||||
(static)
|
||||
(super)
|
||||
(synchronized)
|
||||
(template)
|
||||
(this)
|
||||
(throw)
|
||||
(typeid)
|
||||
(typeof)
|
||||
(unittest)
|
||||
(version)
|
||||
(with)
|
||||
(gshared)
|
||||
(traits)
|
||||
(vector)
|
||||
(parameters_)
|
||||
] @keyword
|
||||
|
||||
[
|
||||
(class)
|
||||
(struct)
|
||||
(interface)
|
||||
(union)
|
||||
(enum)
|
||||
(function)
|
||||
(delegate)
|
||||
] @keyword.storage.type
|
||||
|
||||
[
|
||||
(break)
|
||||
(case)
|
||||
(catch)
|
||||
(continue)
|
||||
(do)
|
||||
(default)
|
||||
(finally)
|
||||
(else)
|
||||
(goto)
|
||||
(if)
|
||||
(switch)
|
||||
(try)
|
||||
] @keyword.control
|
||||
|
||||
(return) @keyword.control.return
|
||||
|
||||
(import) @keyword.control.import
|
||||
|
||||
[
|
||||
(for)
|
||||
(foreach)
|
||||
(foreach_reverse)
|
||||
(while)
|
||||
] @keyword.control.repeat
|
||||
|
||||
[
|
||||
(not_in)
|
||||
(not_is)
|
||||
"/="
|
||||
"/"
|
||||
".."
|
||||
"..."
|
||||
"&"
|
||||
"&="
|
||||
"&&"
|
||||
"|"
|
||||
"|="
|
||||
"||"
|
||||
"-"
|
||||
"-="
|
||||
"--"
|
||||
"+"
|
||||
"+="
|
||||
"++"
|
||||
"<"
|
||||
"<="
|
||||
"<<"
|
||||
"<<="
|
||||
">"
|
||||
">="
|
||||
">>="
|
||||
">>>="
|
||||
">>"
|
||||
">>>"
|
||||
"!"
|
||||
"!="
|
||||
"?"
|
||||
"$"
|
||||
"="
|
||||
"=="
|
||||
"*"
|
||||
"*="
|
||||
"%"
|
||||
"%="
|
||||
"^"
|
||||
"^="
|
||||
"^^"
|
||||
"^^="
|
||||
"~"
|
||||
"~="
|
||||
"@"
|
||||
"=>"
|
||||
] @operator
|
||||
|
||||
[
|
||||
"("
|
||||
")"
|
||||
"["
|
||||
"]"
|
||||
] @punctuation.bracket
|
||||
|
||||
[
|
||||
";"
|
||||
"."
|
||||
":"
|
||||
","
|
||||
] @punctuation.delimiter
|
||||
|
||||
[
|
||||
(true)
|
||||
(false)
|
||||
] @constant.builtin.boolean
|
||||
|
||||
(null) @constant.builtin
|
||||
|
||||
(special_keyword) @constant.builtin
|
||||
|
||||
(directive) @keyword.directive
|
||||
(shebang) @keyword.directive
|
||||
|
||||
(comment) @comment
|
||||
|
||||
[
|
||||
(void)
|
||||
(bool)
|
||||
(byte)
|
||||
(ubyte)
|
||||
(char)
|
||||
(short)
|
||||
(ushort)
|
||||
(wchar)
|
||||
(dchar)
|
||||
(int)
|
||||
(uint)
|
||||
(long)
|
||||
(ulong)
|
||||
(real)
|
||||
(double)
|
||||
] @type.builtin
|
||||
|
||||
[
|
||||
(cent)
|
||||
(ucent)
|
||||
(ireal)
|
||||
(idouble)
|
||||
(ifloat)
|
||||
(creal)
|
||||
(double)
|
||||
(cfloat)
|
||||
] @warning ; these types are deprecated
|
||||
|
||||
(label (identifier) @label)
|
||||
(goto_statement (goto) @keyword (identifier) @label)
|
||||
|
||||
(string_literal) @string
|
||||
(int_literal) @constant.numeric.integer
|
||||
(float_literal) @constant.numeric.float
|
||||
(char_literal) @constant.character
|
||||
(identifier) @variable
|
||||
(at_attribute) @attribute
|
||||
|
||||
; everything after __EOF_ is plain text
|
||||
(end_file) @ui.text
|
@ -0,0 +1,17 @@
|
||||
[
|
||||
(parameters)
|
||||
(template_parameters)
|
||||
(expression_statement)
|
||||
(aggregate_body)
|
||||
(function_body)
|
||||
(scope_statement)
|
||||
(block_statement)
|
||||
(case_statement)
|
||||
] @indent
|
||||
|
||||
[
|
||||
(case)
|
||||
(default)
|
||||
"}"
|
||||
"]"
|
||||
] @outdent
|
@ -0,0 +1,2 @@
|
||||
((comment) @injection.content
|
||||
(#set! injection.language "comment"))
|
@ -0,0 +1,9 @@
|
||||
(function_declaration (function_body) @function.inside) @function.around
|
||||
(comment) @comment.inside
|
||||
(comment)+ @comment.around
|
||||
(class_declaration (aggregate_body) @class.inside) @class.around
|
||||
(interface_declaration (aggregate_body) @class.inside) @class.around
|
||||
(struct_declaration (aggregate_body) @class.inside) @class.around
|
||||
(unittest_declaration (block_statement) @test.insid) @test.around
|
||||
(parameter) @parameter.inside
|
||||
(template_parameter) @parameter.inside
|
@ -0,0 +1,10 @@
|
||||
[
|
||||
(do_statement)
|
||||
(while_statement)
|
||||
(repeat_statement)
|
||||
(if_statement)
|
||||
(for_statement)
|
||||
(function_declaration)
|
||||
(function_definition)
|
||||
(table_constructor)
|
||||
] @fold
|
@ -1,2 +1,3 @@
|
||||
((comment) @injection.content
|
||||
(#set! injection.language "comment"))
|
||||
(#set! injection.language "comment")
|
||||
(#set! injection.include-children))
|
||||
|
@ -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
|
@ -0,0 +1 @@
|
||||
; inherits: haskell
|
@ -0,0 +1 @@
|
||||
; inherits: haskell
|
@ -0,0 +1 @@
|
||||
; inherits: haskell
|
@ -0,0 +1,7 @@
|
||||
(switch_expression) @local.scope
|
||||
(if_expression) @local.scope
|
||||
|
||||
; Definitions
|
||||
;------------
|
||||
(type_declaration) @local.defintion
|
||||
(let_binding) @local.defintion
|
@ -0,0 +1,23 @@
|
||||
(TopLevelDecl (FnProto)
|
||||
(_) @function.inside) @function.around
|
||||
|
||||
(TestDecl (_) @test.inside) @test.around
|
||||
|
||||
; matches all of: struct, enum, union
|
||||
; this unfortunately cannot be split up because
|
||||
; of the way struct "container" types are defined
|
||||
(TopLevelDecl (VarDecl (ErrorUnionExpr (SuffixExpr (ContainerDecl
|
||||
(_) @class.inside))))) @class.around
|
||||
|
||||
(TopLevelDecl (VarDecl (ErrorUnionExpr (SuffixExpr (ErrorSetDecl
|
||||
(_) @class.inside))))) @class.around
|
||||
|
||||
(ParamDeclList
|
||||
((_) @parameter.inside . ","? @parameter.around) @parameter.around)
|
||||
|
||||
[
|
||||
(doc_comment)
|
||||
(line_comment)
|
||||
] @comment.inside
|
||||
(line_comment)+ @comment.around
|
||||
(doc_comment)+ @comment.around
|
@ -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"
|
||||
|
@ -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"
|
@ -0,0 +1,105 @@
|
||||
"comment" = { fg = "highlight_three" }
|
||||
"comment.block.documentation" = { bg = "t4", modifiers = ["italic"] }
|
||||
|
||||
"constant" = { fg = "t11" }
|
||||
"function" = { fg = "t10" }
|
||||
"function.method" = { fg = "t10" }
|
||||
"function.macro" = { fg = "t7" }
|
||||
"keyword.storage.modifier" = { fg = "t7" }
|
||||
"keyword.control.import" = { fg = "t8" }
|
||||
"keyword.control" = { fg = "t8" }
|
||||
"keyword.function" = { fg = "t7" }
|
||||
"keyword" = { fg = "t6" }
|
||||
"operator" = { fg = "t8" }
|
||||
"punctuation" = { fg = "t9" }
|
||||
"string" = { fg = "t6", modifiers = ["italic"] }
|
||||
"string.regexp" = { fg = "t6" }
|
||||
"tag" = { fg = "t4" }
|
||||
"type" = { fg = "t8", modifiers = ["bold"] }
|
||||
"namespace" = { fg = "t6", modifiers = ["bold"] }
|
||||
"variable" = { fg = "t4" }
|
||||
"label" = { fg = "t4" }
|
||||
|
||||
"diff.plus" = { fg = "t4" }
|
||||
"diff.delta" = { fg = "t4" }
|
||||
"diff.minus" = { fg = "t4" }
|
||||
|
||||
"ui.cursor.insert" = { fg = "t2", bg = "highlight" }
|
||||
"ui.cursor.select" = { fg = "t2", bg = "highlight_two" }
|
||||
"ui.cursor" = { fg = "t1", bg = "highlight_three" }
|
||||
"ui.cursor.match" = { fg = "highlight", bg = "t1", modifiers = ["bold"] }
|
||||
|
||||
"ui.linenr" = { fg = "t3", bg = "t1" }
|
||||
"ui.linenr.selected" = { fg = "highlight_three", bg = "t1" }
|
||||
"ui.gutter" = { bg = "t1" }
|
||||
|
||||
"ui.background" = { fg = "t4", bg = "t2" }
|
||||
"ui.background.separator" = { fg = "t3" }
|
||||
"ui.help" = { fg = "t4", bg = "t1" }
|
||||
"ui.menu" = { fg = "t4", bg = "t1" }
|
||||
"ui.menu.selected" = { fg = "highlight_three", bg = "t1" }
|
||||
"ui.popup" = { fg = "t4", bg = "t1" }
|
||||
"ui.window" = { fg = "t4" }
|
||||
|
||||
"ui.selection.primary" = { bg = "selection" }
|
||||
"ui.selection" = { bg = "selection" }
|
||||
|
||||
"ui.cursorline.primary" = { bg = "t1" }
|
||||
|
||||
"ui.statusline" = { fg = "t4", bg = "t1" }
|
||||
"ui.statusline.inactive" = { fg = "t4", bg = "t1" }
|
||||
"ui.statusline.normal" = { fg = "t3", bg = "t1" }
|
||||
"ui.statusline.insert" = { fg = "t3", bg = "t1" }
|
||||
"ui.statusline.select" = { fg = "highlight", bg = "t4" }
|
||||
|
||||
"ui.text" = { fg = "t4" }
|
||||
"ui.text.focus" = { fg = "highlight_three", modifiers = ["bold"] }
|
||||
#
|
||||
"ui.virtual.ruler" = { bg = "t1" }
|
||||
"ui.virtual.indent-guide" = { fg = "t3" }
|
||||
"ui.virtual.whitespace" = { fg = "t3" }
|
||||
|
||||
"diagnostic" = { modifiers = ["underlined"] }
|
||||
"error" = { fg = "error", modifiers = ["bold"] }
|
||||
"warning" = { fg = "warning", modifiers = ["bold"] }
|
||||
"info" = { fg = "info", modifiers = ["bold"] }
|
||||
"hint" = { fg = "display", modifiers = ["bold"] }
|
||||
"special" = { fg = "t7", modifiers = ["bold"] }
|
||||
|
||||
"markup.heading" = { fg = "t4" }
|
||||
"markup.list" = { fg = "t4" }
|
||||
"markup.bold" = { fg = "t4" }
|
||||
"markup.italic" = { fg = "t4" }
|
||||
"markup.link.url" = { fg = "t4", modifiers = ["underlined"] }
|
||||
"markup.link.text" = { fg = "t4" }
|
||||
"markup.quote" = { fg = "t4" }
|
||||
"markup.raw" = { fg = "t4" }
|
||||
|
||||
[palette]
|
||||
t1 = "#0f0b0b"
|
||||
t2 = "#161010"
|
||||
t3 = "#5b5555"
|
||||
t4 = "#656869"
|
||||
t5 = "#727b7c"
|
||||
t6 = "#6e8789"
|
||||
t7 = "#d85c60"
|
||||
t8 = "#9bc1bb"
|
||||
t9 = "#b5c5c5"
|
||||
t10 = "#c0d0ce"
|
||||
t11 = "#f78c5e"
|
||||
|
||||
highlight = "#3f36f2"
|
||||
highlight_two = "#f69c3c"
|
||||
highlight_three = "#d4d987"
|
||||
|
||||
selection = "#032d4a"
|
||||
|
||||
black = "#000000"
|
||||
|
||||
comment = "#396884"
|
||||
comment_doc = "#234048"
|
||||
|
||||
error = "#ff0900"
|
||||
warning = "#ffbf00"
|
||||
display = "#57ff89"
|
||||
info = "#dad7d5"
|
@ -0,0 +1,30 @@
|
||||
inherits = "hex_steel"
|
||||
|
||||
[palette]
|
||||
t1 = "#101719"
|
||||
t2 = "#152432"
|
||||
t3 = "#4b5968"
|
||||
t4 = "#8792ab"
|
||||
t5 = "#6f91bc"
|
||||
t6 = "#8bb2b9"
|
||||
t7 = "#eeac90"
|
||||
t8 = "#b0bd9f"
|
||||
t9 = "#b3ccd0"
|
||||
t10 = "#b0d4d8"
|
||||
t11 = "#ffbf52"
|
||||
|
||||
highlight = "#ff2e5f"
|
||||
highlight_two = "#0affa9"
|
||||
highlight_three = "#d7ff52"
|
||||
|
||||
black = "#000000"
|
||||
|
||||
selection = "#290019"
|
||||
|
||||
comment = "#396884"
|
||||
comment_doc = "#234048"
|
||||
|
||||
error = "#ff0900"
|
||||
warning = "#ffbf00"
|
||||
display = "#57ff89"
|
||||
info = "#dad7d5"
|
@ -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
|
Loading…
Reference in New Issue