mirror of
https://github.com/helix-editor/helix.git
synced 2024-11-22 09:26:19 +04:00
Compare commits
14 Commits
5caee06337
...
df7ee9378d
Author | SHA1 | Date | |
---|---|---|---|
|
df7ee9378d | ||
|
f305c7299d | ||
|
9e0d2d0a19 | ||
|
b8313da5a8 | ||
|
32ff0fce4a | ||
|
9e171e7d1d | ||
|
b92e8abfb3 | ||
|
8807dbfc40 | ||
|
15b478d433 | ||
|
467fad51b1 | ||
|
b855cd0cda | ||
|
a430e17796 | ||
|
d7c56fb689 | ||
|
7d5498a918 |
@ -145,8 +145,9 @@ ### Configure the desktop shortcut
|
||||
provided `.desktop` and icon files to their correct folders:
|
||||
|
||||
```sh
|
||||
cp contrib/Helix.desktop ~/.local/share/applications
|
||||
cp contrib/helix.png ~/.icons # or ~/.local/share/icons
|
||||
cp contrib/Helix.desktop -- "$HOME/.local/share/applications"
|
||||
cp contrib/helix.png -- "$HOME/.icons" # or "$HOME/.local/share/icons"
|
||||
#xdg-icon-resource install --novendor --size 256 contrib/helix.png
|
||||
```
|
||||
It is recommended to convert the links in the `.desktop` file to absolute paths to avoid potential problems:
|
||||
|
||||
|
@ -24,6 +24,7 @@ ### `[editor]` Section
|
||||
|--|--|---------|
|
||||
| `scrolloff` | Number of lines of padding around the edge of the screen when scrolling | `5` |
|
||||
| `mouse` | Enable mouse mode | `true` |
|
||||
| `default-yank-register` | Default register used for yank/paste | `"` |
|
||||
| `middle-click-paste` | Middle click paste support | `true` |
|
||||
| `scroll-lines` | Number of lines to scroll per scroll wheel step | `3` |
|
||||
| `shell` | Shell to use when running external commands | Unix: `["sh", "-c"]`<br/>Windows: `["cmd", "/C"]` |
|
||||
|
@ -3,6 +3,7 @@
|
||||
| ada | ✓ | ✓ | | `ada_language_server` |
|
||||
| adl | ✓ | ✓ | ✓ | |
|
||||
| agda | ✓ | | | |
|
||||
| amber | ✓ | | | |
|
||||
| astro | ✓ | | | |
|
||||
| awk | ✓ | ✓ | | `awk-language-server` |
|
||||
| bash | ✓ | ✓ | ✓ | `bash-language-server` |
|
||||
@ -91,7 +92,7 @@
|
||||
| hosts | ✓ | | | |
|
||||
| html | ✓ | | | `vscode-html-language-server`, `superhtml` |
|
||||
| hurl | ✓ | ✓ | ✓ | |
|
||||
| hyprlang | ✓ | | ✓ | |
|
||||
| hyprlang | ✓ | | ✓ | `hyprls` |
|
||||
| idris | | | | `idris2-lsp` |
|
||||
| iex | ✓ | | | |
|
||||
| ini | ✓ | | | |
|
||||
@ -169,6 +170,7 @@
|
||||
| purescript | ✓ | ✓ | | `purescript-language-server` |
|
||||
| python | ✓ | ✓ | ✓ | `ruff`, `jedi-language-server`, `pylsp` |
|
||||
| qml | ✓ | | ✓ | `qmlls` |
|
||||
| quint | ✓ | | | `quint-language-server` |
|
||||
| r | ✓ | | | `R` |
|
||||
| racket | ✓ | | ✓ | `racket` |
|
||||
| regex | ✓ | | | |
|
||||
|
@ -2735,7 +2735,9 @@ fn delete_selection_impl(cx: &mut Context, op: Operation, yank: YankAction) {
|
||||
// yank the selection
|
||||
let text = doc.text().slice(..);
|
||||
let values: Vec<String> = selection.fragments(text).map(Cow::into_owned).collect();
|
||||
let reg_name = cx.register.unwrap_or('"');
|
||||
let reg_name = cx
|
||||
.register
|
||||
.unwrap_or_else(|| cx.editor.config.load().default_yank_register);
|
||||
if let Err(err) = cx.editor.registers.write(reg_name, values) {
|
||||
cx.editor.set_error(err.to_string());
|
||||
return;
|
||||
@ -4221,7 +4223,11 @@ fn commit_undo_checkpoint(cx: &mut Context) {
|
||||
// Yank / Paste
|
||||
|
||||
fn yank(cx: &mut Context) {
|
||||
yank_impl(cx.editor, cx.register.unwrap_or('"'));
|
||||
yank_impl(
|
||||
cx.editor,
|
||||
cx.register
|
||||
.unwrap_or(cx.editor.config().default_yank_register),
|
||||
);
|
||||
exit_select_mode(cx);
|
||||
}
|
||||
|
||||
@ -4282,7 +4288,12 @@ fn yank_joined_impl(editor: &mut Editor, separator: &str, register: char) {
|
||||
|
||||
fn yank_joined(cx: &mut Context) {
|
||||
let separator = doc!(cx.editor).line_ending.as_str();
|
||||
yank_joined_impl(cx.editor, separator, cx.register.unwrap_or('"'));
|
||||
yank_joined_impl(
|
||||
cx.editor,
|
||||
separator,
|
||||
cx.register
|
||||
.unwrap_or(cx.editor.config().default_yank_register),
|
||||
);
|
||||
exit_select_mode(cx);
|
||||
}
|
||||
|
||||
@ -4442,7 +4453,12 @@ fn paste_primary_clipboard_before(cx: &mut Context) {
|
||||
}
|
||||
|
||||
fn replace_with_yanked(cx: &mut Context) {
|
||||
replace_with_yanked_impl(cx.editor, cx.register.unwrap_or('"'), cx.count());
|
||||
replace_with_yanked_impl(
|
||||
cx.editor,
|
||||
cx.register
|
||||
.unwrap_or(cx.editor.config().default_yank_register),
|
||||
cx.count(),
|
||||
);
|
||||
exit_select_mode(cx);
|
||||
}
|
||||
|
||||
@ -4505,7 +4521,8 @@ fn paste(editor: &mut Editor, register: char, pos: Paste, count: usize) {
|
||||
fn paste_after(cx: &mut Context) {
|
||||
paste(
|
||||
cx.editor,
|
||||
cx.register.unwrap_or('"'),
|
||||
cx.register
|
||||
.unwrap_or(cx.editor.config().default_yank_register),
|
||||
Paste::After,
|
||||
cx.count(),
|
||||
);
|
||||
@ -4515,7 +4532,8 @@ fn paste_after(cx: &mut Context) {
|
||||
fn paste_before(cx: &mut Context) {
|
||||
paste(
|
||||
cx.editor,
|
||||
cx.register.unwrap_or('"'),
|
||||
cx.register
|
||||
.unwrap_or(cx.editor.config().default_yank_register),
|
||||
Paste::Before,
|
||||
cx.count(),
|
||||
);
|
||||
@ -5369,7 +5387,8 @@ fn insert_register(cx: &mut Context) {
|
||||
cx.register = Some(ch);
|
||||
paste(
|
||||
cx.editor,
|
||||
cx.register.unwrap_or('"'),
|
||||
cx.register
|
||||
.unwrap_or(cx.editor.config().default_yank_register),
|
||||
Paste::Cursor,
|
||||
cx.count(),
|
||||
);
|
||||
|
@ -190,9 +190,9 @@ fn builtin_name<'a>(
|
||||
// These names should match the config option names from Serde
|
||||
Self::Pasteboard => builtin_name("pasteboard", &PASTEBOARD),
|
||||
Self::Wayland => builtin_name("wayland", &WL_CLIPBOARD),
|
||||
Self::XClip => builtin_name("x-clip", &WL_CLIPBOARD),
|
||||
Self::XSel => builtin_name("x-sel", &WL_CLIPBOARD),
|
||||
Self::Win32Yank => builtin_name("win-32-yank", &WL_CLIPBOARD),
|
||||
Self::XClip => builtin_name("x-clip", &XCLIP),
|
||||
Self::XSel => builtin_name("x-sel", &XSEL),
|
||||
Self::Win32Yank => builtin_name("win-32-yank", &WIN32),
|
||||
Self::Tmux => builtin_name("tmux", &TMUX),
|
||||
Self::Termux => builtin_name("termux", &TERMUX),
|
||||
#[cfg(windows)]
|
||||
@ -359,44 +359,44 @@ macro_rules! command_provider {
|
||||
|
||||
command_provider! {
|
||||
TMUX,
|
||||
yank => "tmux", "load-buffer", "-w", "-";
|
||||
paste => "tmux", "save-buffer", "-";
|
||||
yank => "tmux", "save-buffer", "-";
|
||||
paste => "tmux", "load-buffer", "-w", "-";
|
||||
}
|
||||
command_provider! {
|
||||
PASTEBOARD,
|
||||
yank => "pbcopy";
|
||||
paste => "pbpaste";
|
||||
yank => "pbpaste";
|
||||
paste => "pbcopy";
|
||||
}
|
||||
command_provider! {
|
||||
WL_CLIPBOARD,
|
||||
yank => "wl-copy", "--type", "text/plain";
|
||||
paste => "wl-paste", "--no-newline";
|
||||
yank_primary => "wl-copy", "-p", "--type", "text/plain";
|
||||
paste_primary => "wl-paste", "-p", "--no-newline";
|
||||
yank => "wl-paste", "--no-newline";
|
||||
paste => "wl-copy", "--type", "text/plain";
|
||||
yank_primary => "wl-paste", "-p", "--no-newline";
|
||||
paste_primary => "wl-copy", "-p", "--type", "text/plain";
|
||||
}
|
||||
command_provider! {
|
||||
XCLIP,
|
||||
yank => "xclip", "-i", "-selection", "clipboard";
|
||||
paste => "xclip", "-o", "-selection", "clipboard";
|
||||
yank_primary => "xclip", "-i";
|
||||
paste_primary => "xclip", "-o";
|
||||
yank => "xclip", "-o", "-selection", "clipboard";
|
||||
paste => "xclip", "-i", "-selection", "clipboard";
|
||||
yank_primary => "xclip", "-o";
|
||||
paste_primary => "xclip", "-i";
|
||||
}
|
||||
command_provider! {
|
||||
XSEL,
|
||||
yank => "xsel", "-i", "-b";
|
||||
paste => "xsel", "-o", "-b";
|
||||
yank_primary => "xsel", "-i";
|
||||
paste_primary => "xsel", "-o";
|
||||
yank => "xsel", "-o", "-b";
|
||||
paste => "xsel", "-i", "-b";
|
||||
yank_primary => "xsel", "-o";
|
||||
paste_primary => "xsel", "-i";
|
||||
}
|
||||
command_provider! {
|
||||
WIN32,
|
||||
yank => "win32yank.exe", "-i", "--crlf";
|
||||
paste => "win32yank.exe", "-o", "--lf";
|
||||
yank => "win32yank.exe", "-o", "--lf";
|
||||
paste => "win32yank.exe", "-i", "--crlf";
|
||||
}
|
||||
command_provider! {
|
||||
TERMUX,
|
||||
yank => "termux-clipboard-set";
|
||||
paste => "termux-clipboard-get";
|
||||
yank => "termux-clipboard-get";
|
||||
paste => "termux-clipboard-set";
|
||||
}
|
||||
|
||||
#[cfg(feature = "term")]
|
||||
|
@ -270,6 +270,8 @@ pub struct Config {
|
||||
pub auto_completion: bool,
|
||||
/// Automatic formatting on save. Defaults to true.
|
||||
pub auto_format: bool,
|
||||
/// Default register used for yank/paste. Defaults to '"'
|
||||
pub default_yank_register: char,
|
||||
/// Automatic save on focus lost and/or after delay.
|
||||
/// Time delay in milliseconds since last edit after which auto save timer triggers.
|
||||
/// Time delay defaults to false with 3000ms delay. Focus lost defaults to false.
|
||||
@ -951,6 +953,7 @@ fn default() -> Self {
|
||||
auto_pairs: AutoPairConfig::default(),
|
||||
auto_completion: true,
|
||||
auto_format: true,
|
||||
default_yank_register: '"',
|
||||
auto_save: AutoSave::default(),
|
||||
idle_timeout: Duration::from_millis(250),
|
||||
completion_timeout: Duration::from_millis(250),
|
||||
|
@ -44,6 +44,7 @@ gleam = { command = "gleam", args = ["lsp"] }
|
||||
glsl_analyzer = { command = "glsl_analyzer" }
|
||||
graphql-language-service = { command = "graphql-lsp", args = ["server", "-m", "stream"] }
|
||||
haskell-language-server = { command = "haskell-language-server-wrapper", args = ["--lsp"] }
|
||||
hyprls = { command = "hyprls" }
|
||||
idris2-lsp = { command = "idris2-lsp" }
|
||||
intelephense = { command = "intelephense", args = ["--stdio"] }
|
||||
jdtls = { command = "jdtls" }
|
||||
@ -83,6 +84,7 @@ pyright = { command = "pyright-langserver", args = ["--stdio"], config = {} }
|
||||
basedpyright = { command = "basedpyright-langserver", args = ["--stdio"], config = {} }
|
||||
pylyzer = { command = "pylyzer", args = ["--server"] }
|
||||
qmlls = { command = "qmlls" }
|
||||
quint-language-server = { command = "quint-language-server", args = ["--stdio"] }
|
||||
r = { command = "R", args = ["--no-echo", "-e", "languageserver::run()"] }
|
||||
racket = { command = "racket", args = ["-l", "racket-langserver"] }
|
||||
regols = { command = "regols" }
|
||||
@ -3577,6 +3579,7 @@ roots = ["hyprland.conf"]
|
||||
file-types = [ { glob = "hyprland.conf" }, { glob = "hyprpaper.conf" }, { glob = "hypridle.conf" }, { glob = "hyprlock.conf" } ]
|
||||
comment-token = "#"
|
||||
grammar = "hyprlang"
|
||||
language-servers = ["hyprls"]
|
||||
|
||||
[[grammar]]
|
||||
name = "hyprlang"
|
||||
@ -3866,11 +3869,15 @@ source = { git = "https://github.com/Decurity/tree-sitter-circom", rev = "021505
|
||||
name = "snakemake"
|
||||
scope = "source.snakemake"
|
||||
roots = ["Snakefile", "config.yaml", "environment.yaml", "workflow/"]
|
||||
file-types = ["smk", "Snakefile"]
|
||||
file-types = ["smk", { glob = "Snakefile" } ]
|
||||
comment-tokens = ["#", "##"]
|
||||
indent = { tab-width = 2, unit = " " }
|
||||
language-servers = ["pylsp" ]
|
||||
|
||||
[language.formatter]
|
||||
command = "snakefmt"
|
||||
args = ["-"]
|
||||
|
||||
[[grammar]]
|
||||
name = "snakemake"
|
||||
source = { git = "https://github.com/osthomas/tree-sitter-snakemake", rev = "e909815acdbe37e69440261ebb1091ed52e1dec6" }
|
||||
@ -3887,6 +3894,19 @@ indent = { tab-width = 4, unit = " " }
|
||||
name = "cylc"
|
||||
source = { git = "https://github.com/elliotfontaine/tree-sitter-cylc", rev = "30dd40d9bf23912e4aefa93eeb4c7090bda3d0f6" }
|
||||
|
||||
[[language]]
|
||||
name = "quint"
|
||||
scope = "source.quint"
|
||||
file-types = ["qnt"]
|
||||
language-servers = ["quint-language-server"]
|
||||
comment-token = "//"
|
||||
block-comment-tokens = { start = "/*", end = "*/" }
|
||||
indent = { tab-width = 2, unit = " " }
|
||||
|
||||
[[grammar]]
|
||||
name = "quint"
|
||||
source = { git = "https://github.com/gruhn/tree-sitter-quint", rev = "eebbd01edfeff6404778c92efe5554e42e506a18" }
|
||||
|
||||
[[language]]
|
||||
name = "spade"
|
||||
scope = "source.spade"
|
||||
@ -3911,3 +3931,14 @@ indent = { tab-width = 4, unit = " " }
|
||||
[[grammar]]
|
||||
name = "spade"
|
||||
source = { git = "https://gitlab.com/spade-lang/tree-sitter-spade/", rev = "4d5b141017c61fe7e168e0a5c5721ee62b0d9572" }
|
||||
|
||||
[[language]]
|
||||
name = "amber"
|
||||
scope = "source.ab"
|
||||
file-types = ["ab"]
|
||||
comment-token = "//"
|
||||
indent = { tab-width = 4, unit = " " }
|
||||
|
||||
[[grammar]]
|
||||
name = "amber"
|
||||
source = { git = "https://github.com/amber-lang/tree-sitter-amber", rev = "c6df3ec2ec243ed76550c525e7ac3d9a10c6c814" }
|
||||
|
60
runtime/queries/amber/highlights.scm
Normal file
60
runtime/queries/amber/highlights.scm
Normal file
@ -0,0 +1,60 @@
|
||||
(comment) @comment
|
||||
|
||||
[
|
||||
"if"
|
||||
"loop"
|
||||
"for"
|
||||
"return"
|
||||
"fun"
|
||||
"else"
|
||||
"then"
|
||||
"break"
|
||||
"continue"
|
||||
"and"
|
||||
"or"
|
||||
"not"
|
||||
"let"
|
||||
"pub"
|
||||
"main"
|
||||
"echo"
|
||||
"exit"
|
||||
"fun"
|
||||
"import"
|
||||
"from"
|
||||
"as"
|
||||
"in"
|
||||
"fail"
|
||||
"failed"
|
||||
"silent"
|
||||
"nameof"
|
||||
"is"
|
||||
"unsafe"
|
||||
"trust"
|
||||
] @keyword
|
||||
|
||||
; Literals
|
||||
(boolean) @constant.builtin.boolean
|
||||
(number) @constant.numeric
|
||||
(null) @constant.numeric
|
||||
(string) @string
|
||||
(status) @keyword
|
||||
(command) @string
|
||||
(handler) @keyword
|
||||
(block) @punctuation.delimiter
|
||||
(variable_init) @keyword
|
||||
(variable_assignment) @punctuation.delimiter
|
||||
(variable) @variable
|
||||
(escape_sequence) @constant.character.escape
|
||||
(type_name_symbol) @type
|
||||
(interpolation) @punctuation.delimiter
|
||||
(reference) @keyword
|
||||
(preprocessor_directive) @comment
|
||||
(shebang) @comment
|
||||
(function_definition
|
||||
name: (variable) @function.method)
|
||||
(function_call
|
||||
name: (variable) @function.method)
|
||||
(import_statement
|
||||
"pub" @keyword
|
||||
"import" @keyword
|
||||
"from" @keyword)
|
94
runtime/queries/quint/highlights.scm
Normal file
94
runtime/queries/quint/highlights.scm
Normal file
@ -0,0 +1,94 @@
|
||||
[
|
||||
"module"
|
||||
"type"
|
||||
"assume"
|
||||
"const"
|
||||
"var"
|
||||
"val"
|
||||
"nondet"
|
||||
"def"
|
||||
"pure"
|
||||
"action"
|
||||
"temporal"
|
||||
"run"
|
||||
] @keyword
|
||||
|
||||
(match_expr "match" @keyword.control.conditional)
|
||||
|
||||
(if_else_condition
|
||||
"if" @keyword.control.conditional
|
||||
"else" @keyword.control.conditional)
|
||||
|
||||
(import "import" @keyword.control.import)
|
||||
(import "as" @keyword.control.import)
|
||||
(import "from" @keyword.control.import)
|
||||
(export "export" @keyword.control.import)
|
||||
(export "as" @keyword.control.import)
|
||||
|
||||
[
|
||||
"true"
|
||||
"false"
|
||||
"Int"
|
||||
"Nat"
|
||||
"Bool"
|
||||
] @constant.builtin
|
||||
|
||||
[
|
||||
";"
|
||||
"."
|
||||
","
|
||||
] @punctuation.delimiter
|
||||
|
||||
[
|
||||
"-"
|
||||
"+"
|
||||
"*"
|
||||
"/"
|
||||
"%"
|
||||
"<"
|
||||
"<="
|
||||
"="
|
||||
"=="
|
||||
"!="
|
||||
"=>"
|
||||
">"
|
||||
">="
|
||||
"^"
|
||||
"->"
|
||||
] @operator
|
||||
|
||||
(infix_and "and" @operator)
|
||||
(infix_or "or" @operator)
|
||||
(infix_iff "iff" @operator)
|
||||
(infix_implies "implies" @operator)
|
||||
|
||||
(braced_and "and" @keyword)
|
||||
(braced_or "or" @keyword)
|
||||
(braced_all "all" @keyword)
|
||||
(braced_any "any" @keyword)
|
||||
|
||||
[
|
||||
"("
|
||||
")"
|
||||
"["
|
||||
"]"
|
||||
"{"
|
||||
"}"
|
||||
] @punctuation.bracket
|
||||
|
||||
(polymorphic_type
|
||||
(type) @type.parameter)
|
||||
|
||||
(variant_constructor) @type.enum.variant
|
||||
|
||||
(type) @type
|
||||
(int_literal) @constant.numeric.integer
|
||||
(comment) @comment
|
||||
(string) @string
|
||||
|
||||
(operator_application
|
||||
operator: (qualified_identifier) @function)
|
||||
|
||||
(operator_definition
|
||||
name: (qualified_identifier) @function
|
||||
arguments: (typed_argument_list))
|
@ -12,6 +12,8 @@
|
||||
(unicode_string_literal)
|
||||
(yul_string_literal)
|
||||
] @string
|
||||
(hex_string_literal "hex" @string.special.symbol)
|
||||
(unicode_string_literal "unicode" @string.special.symbol)
|
||||
[
|
||||
(number_literal)
|
||||
(yul_decimal_number)
|
||||
@ -20,6 +22,7 @@
|
||||
[
|
||||
(true)
|
||||
(false)
|
||||
(yul_boolean)
|
||||
] @constant.builtin.boolean
|
||||
|
||||
(comment) @comment
|
||||
|
@ -1,13 +1,15 @@
|
||||
# Author : portalsurfer <https://github.com/PORTALSURFER>
|
||||
|
||||
inherits = "hex_steel"
|
||||
|
||||
[palette]
|
||||
t1 = "#0e0e0d"
|
||||
t2 = "#121311"
|
||||
t2 = "#181a17"
|
||||
t3 = "#2b3444"
|
||||
t4 = "#61586f"
|
||||
t5 = "#686e73"
|
||||
t6 = "#878480"
|
||||
t7 = "#897dca"
|
||||
t7 = "#8e80de"
|
||||
t8 = "#7b89a3"
|
||||
t9 = "#bcb6ba"
|
||||
t10 = "#9db2b8"
|
||||
@ -20,12 +22,20 @@ highlight_three = "#29bbff"
|
||||
black = "#000000"
|
||||
|
||||
selection = "#290019"
|
||||
selection_fg = "#958e9a"
|
||||
|
||||
comment = "#9aacfe"
|
||||
comment = "#404768"
|
||||
comment_doc = "#0affa9"
|
||||
|
||||
error = "#ff0900"
|
||||
warning = "#ffbf00"
|
||||
display = "#57ff89"
|
||||
info = "#dad7d5"
|
||||
#
|
||||
|
||||
hints = "#44273f"
|
||||
ruler = "#1c1f1b"
|
||||
|
||||
diff_minus = "#ff4000"
|
||||
diff_delta = "#0078bd"
|
||||
diff_plus = "#c9d400"
|
||||
diff_delta_moved = "#0048bd"
|
41
runtime/themes/hex_poison.toml
Normal file
41
runtime/themes/hex_poison.toml
Normal file
@ -0,0 +1,41 @@
|
||||
# Author : portalsurfer <https://github.com/PORTALSURFER>
|
||||
|
||||
inherits = "hex_steel"
|
||||
|
||||
[palette]
|
||||
t1 = "#121211"
|
||||
t2 = "#1e1f1b"
|
||||
t3 = "#4c513a"
|
||||
t4 = "#5a6052"
|
||||
t5 = "#6f6d6f"
|
||||
t8 = "#7e808a"
|
||||
t7 = "#b1b354"
|
||||
t10 = "#6fa197"
|
||||
t9 = "#3f4a4e"
|
||||
t6 = "#98acaa"
|
||||
t11 = "#6fd7a8"
|
||||
|
||||
highlight = "#ff2e5f"
|
||||
highlight_two = "#0affa9"
|
||||
highlight_three = "#d7ff52"
|
||||
|
||||
black = "#000000"
|
||||
|
||||
selection = "#290019"
|
||||
selection_fg = "#c8e732"
|
||||
|
||||
comment = "#396884"
|
||||
comment_doc = "#234048"
|
||||
|
||||
error = "#c73500"
|
||||
warning = "#dcbb00"
|
||||
display = "#57ff89"
|
||||
info = "#dad7d5"
|
||||
|
||||
hints = "#313d3c"
|
||||
ruler = "#21221e"
|
||||
|
||||
diff_minus = "#ff4000"
|
||||
diff_delta = "#16a7c7"
|
||||
diff_plus = "#c9d400"
|
||||
diff_delta_moved = "#0048bd"
|
@ -1,14 +1,16 @@
|
||||
# Author : portalsurfer <https://github.com/PORTALSURFER>
|
||||
|
||||
"comment" = { fg = "comment" }
|
||||
"comment.block.documentation" = { bg = "comment_doc", modifiers = ["italic"] }
|
||||
|
||||
"constant" = { fg = "t11" }
|
||||
"function" = { fg = "t10" }
|
||||
"function.method" = { fg = "t10" }
|
||||
"function.method" = { fg = "t7" }
|
||||
"function.macro" = { fg = "t7" }
|
||||
"keyword.storage.modifier" = { fg = "t7" }
|
||||
"keyword.control.import" = { fg = "t8" }
|
||||
"keyword.control" = { fg = "t8" }
|
||||
"keyword.function" = { fg = "t7" }
|
||||
"keyword.function" = { fg = "t11" }
|
||||
"keyword" = { fg = "t6" }
|
||||
"operator" = { fg = "t8" }
|
||||
"punctuation" = { fg = "t9" }
|
||||
@ -18,6 +20,8 @@
|
||||
"type" = { fg = "t8", modifiers = ["bold"] }
|
||||
"namespace" = { fg = "t6", modifiers = ["bold"] }
|
||||
"variable" = { fg = "t4" }
|
||||
"variable.parameter" = { fg = "t6" }
|
||||
"variable.other.member" = { fg = "t3" }
|
||||
"label" = { fg = "t4" }
|
||||
|
||||
"diff.plus" = { fg = "diff_plus" }
|
||||
@ -25,10 +29,12 @@
|
||||
"diff.delta.moved" = { fg = "diff_delta_moved" }
|
||||
"diff.minus" = { fg = "diff_minus" }
|
||||
|
||||
"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 = "selection", modifiers = ["bold"] }
|
||||
"ui.cursor.primary.insert" = { fg = "t2", bg = "highlight" }
|
||||
"ui.cursor.primary.select" = { fg = "t2", bg = "highlight_two" }
|
||||
"ui.cursor.primary" = { fg = "t1", bg = "highlight_three" }
|
||||
"ui.cursor.match" = { fg = "highlight", bg = "t1", modifiers = ["bold"] }
|
||||
"ui.cursorline.primary" = { bg = "ruler" }
|
||||
"ui.cursorline.secondary" = { bg = "ruler" }
|
||||
|
||||
"ui.linenr" = { fg = "t3", bg = "t2" }
|
||||
"ui.linenr.selected" = { fg = "highlight_three", bg = "t2" }
|
||||
@ -42,10 +48,7 @@
|
||||
"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.selection" = { fg = "selection_fg", bg = "selection" }
|
||||
|
||||
"ui.statusline" = { fg = "t4", bg = "t1" }
|
||||
"ui.statusline.inactive" = { fg = "t4", bg = "t1" }
|
||||
@ -55,17 +58,20 @@
|
||||
|
||||
"ui.text" = { fg = "t4" }
|
||||
"ui.text.focus" = { fg = "highlight_three", modifiers = ["bold"] }
|
||||
#
|
||||
"ui.virtual.ruler" = { bg = "t1" }
|
||||
|
||||
"ui.virtual.ruler" = { bg = "ruler" }
|
||||
"ui.virtual.indent-guide" = { fg = "t3" }
|
||||
"ui.virtual.whitespace" = { fg = "t3" }
|
||||
"ui.virtual.jump-label" = { fg = "t11", modifiers = ["bold"] }
|
||||
"ui.virtual.inlay-hint" = { fg = "hints", modifiers = ["bold"] }
|
||||
|
||||
"ui.bufferline" = { fg = "t3", bg = "t1" }
|
||||
"ui.bufferline.active" = { fg = "t7", bg = "t2" }
|
||||
|
||||
"diagnostic.error" = { underline = { color = "error", style = "curl" } }
|
||||
"diagnostic.warning" = { underline = { color = "warning", style = "curl" } }
|
||||
"diagnostic.info" = { underline = { color = "info", style = "curl" } }
|
||||
"diagnostic.hint" = { underline = { color = "display", style = "curl" } }
|
||||
"diagnostic.unnecessary" = { modifiers = ["dim"] }
|
||||
"diagnostic.deprecated" = { modifiers = ["crossed_out"] }
|
||||
|
||||
"error" = { fg = "error", modifiers = ["bold"] }
|
||||
"warning" = { fg = "warning", modifiers = ["bold"] }
|
||||
@ -73,14 +79,14 @@
|
||||
"hint" = { fg = "display", modifiers = ["bold"] }
|
||||
"special" = { fg = "t7", modifiers = ["bold"] }
|
||||
|
||||
"markup.heading" = { fg = "t4" }
|
||||
"markup.list" = { fg = "t4" }
|
||||
"markup.heading" = { fg = "t7" }
|
||||
"markup.list" = { fg = "t7" }
|
||||
"markup.bold" = { fg = "t4" }
|
||||
"markup.italic" = { fg = "t4" }
|
||||
"markup.strikethrough" = { fg = "t4", modifiers = ["crossed_out"] }
|
||||
"markup.link.url" = { fg = "t4", modifiers = ["underlined"] }
|
||||
"markup.link.text" = { fg = "t4" }
|
||||
"markup.quote" = { fg = "t4" }
|
||||
"markup.link.url" = { fg = "t11", modifiers = ["underlined"] }
|
||||
"markup.link.text" = { fg = "t11" }
|
||||
"markup.quote" = { fg = "t5" }
|
||||
"markup.raw" = { fg = "t4" }
|
||||
|
||||
[palette]
|
||||
@ -93,25 +99,28 @@ t6 = "#6e8789"
|
||||
t7 = "#d85c60"
|
||||
t8 = "#9bc1bb"
|
||||
t9 = "#b5c5c5"
|
||||
t10 = "#c0d0ce"
|
||||
t10 = "#c3c3bd"
|
||||
t11 = "#f78c5e"
|
||||
|
||||
highlight = "#3f36f2"
|
||||
highlight = "#f23672"
|
||||
highlight_two = "#f69c3c"
|
||||
highlight_three = "#d4d987"
|
||||
|
||||
selection = "#032d4a"
|
||||
selection = "#4a9aa6"
|
||||
selection_fg = "#080a0b"
|
||||
|
||||
black = "#000000"
|
||||
comment = "#d4d987"
|
||||
comment = "#654642"
|
||||
comment_doc = "#234048"
|
||||
hints = "#31353c"
|
||||
ruler = "#222320"
|
||||
|
||||
error = "#ff0900"
|
||||
error = "#ff4000"
|
||||
warning = "#ffbf00"
|
||||
display = "#42baff"
|
||||
info = "#dad7d5"
|
||||
|
||||
diff_minus = "#ff0900"
|
||||
diff_minus = "#ff4000"
|
||||
diff_delta = "#0078bd"
|
||||
diff_plus = "#87a800"
|
||||
diff_plus = "#c9d400"
|
||||
diff_delta_moved = "#0048bd"
|
||||
|
@ -1,3 +1,5 @@
|
||||
# Author : portalsurfer <https://github.com/PORTALSURFER>
|
||||
|
||||
inherits = "hex_steel"
|
||||
|
||||
[palette]
|
||||
@ -19,12 +21,21 @@ highlight_three = "#f8ed8b"
|
||||
|
||||
black = "#000000"
|
||||
|
||||
selection = "#382e1e"
|
||||
selection = "#b10656"
|
||||
selection_fg = "#101719"
|
||||
|
||||
comment = "#61bdd1"
|
||||
comment = "#417e8c"
|
||||
comment_doc = "#234048"
|
||||
|
||||
error = "#ff0900"
|
||||
warning = "#ffbf00"
|
||||
display = "#57ff89"
|
||||
info = "#dad7d5"
|
||||
|
||||
hints = "#39515c"
|
||||
ruler = "#1e3039"
|
||||
|
||||
diff_minus = "#ff4000"
|
||||
diff_delta = "#0078bd"
|
||||
diff_plus = "#c9d400"
|
||||
diff_delta_moved = "#0048bd"
|
159
runtime/themes/sunset.toml
Normal file
159
runtime/themes/sunset.toml
Normal file
@ -0,0 +1,159 @@
|
||||
# Sunset
|
||||
# Author : Egor Afanasin <afanasin.egor@gmail.com>
|
||||
# Repo: https://github.com/pithecantrope/sunset
|
||||
|
||||
# Syntax highlighting
|
||||
# ----------------------------------------------------------------
|
||||
attribute = "rose"
|
||||
|
||||
type = "rose"
|
||||
"type.builtin" = { fg = "rose", modifiers = ["italic"] }
|
||||
|
||||
constructor = "wood"
|
||||
|
||||
constant = "fire"
|
||||
"constant.builtin" = { fg = "fire", modifiers = ["italic"] }
|
||||
"constant.character" = "wood"
|
||||
"constant.character.escape" = "pink"
|
||||
"constant.numeric" = "wood"
|
||||
|
||||
string = "grass"
|
||||
"string.regexp" = "pink"
|
||||
"string.special" = "rose"
|
||||
"string.special.symbol" = "fire"
|
||||
|
||||
comment = { fg = "cmnt", modifiers = ["italic"] }
|
||||
"comment.block.documentation" = "grass"
|
||||
|
||||
variable = "text"
|
||||
"variable.builtin" = { fg = "sky", modifiers = ["italic"] }
|
||||
# TODO: variable.parameter
|
||||
"variable.other.member" = "mud"
|
||||
|
||||
label = "sky"
|
||||
|
||||
punctuation = "cmnt"
|
||||
"punctuation.special" = "wine"
|
||||
|
||||
keyword = "sun"
|
||||
"keyword.control.return" = { fg = "sun", modifiers = ["italic"] }
|
||||
"keyword.control.exception" = { fg = "sun", modifiers = ["italic"] }
|
||||
"keyword.directive" = "sky"
|
||||
|
||||
operator = "wine"
|
||||
|
||||
function = "peach"
|
||||
"function.builtin" = { fg = "peach", modifiers = ["italic"] }
|
||||
"function.macro" = "pink"
|
||||
|
||||
tag = "peach"
|
||||
|
||||
namespace = { fg = "pink", modifiers = ["italic"] }
|
||||
|
||||
special = "sky"
|
||||
|
||||
# Editor interface
|
||||
# ----------------------------------------------------------------
|
||||
"markup.heading.marker" = "sun"
|
||||
"markup.heading.1" = "attn"
|
||||
"markup.heading.2" = "fire"
|
||||
"markup.heading.3" = "rose"
|
||||
"markup.heading.4" = "peach"
|
||||
"markup.heading.5" = "wine"
|
||||
"markup.heading.6" = "grass"
|
||||
|
||||
"markup.list" = "wood"
|
||||
|
||||
"markup.bold" = { modifiers = ["bold"] }
|
||||
"markup.italic" = { modifiers = ["italic"] }
|
||||
"markup.strikethrough" = { modifiers = ["crossed_out"] }
|
||||
|
||||
"markup.link.url" = { fg = "sky", underline.style = "line" }
|
||||
"markup.link.label" = { fg = "sky", modifiers = ["italic"] }
|
||||
"markup.link.text" = "mud"
|
||||
|
||||
"markup.quote" = "grass"
|
||||
|
||||
"markup.raw" = "pink"
|
||||
|
||||
"diff.plus" = "grass"
|
||||
"diff.minus" = "attn"
|
||||
"diff.delta" = "sky"
|
||||
|
||||
# User interface
|
||||
# ----------------------------------------------------------------
|
||||
"ui.background" = { fg = "text", bg = "base" }
|
||||
|
||||
"ui.cursor" = { modifiers = ["reversed"] }
|
||||
"ui.cursor.match" = { fg = "attn", modifiers = ["bold"] }
|
||||
|
||||
# TODO: ui.debug
|
||||
|
||||
"ui.linenr" = "block"
|
||||
"ui.linenr.selected" = "cmnt"
|
||||
|
||||
"ui.statusline" = { bg = "block" }
|
||||
"ui.statusline.inactive" = { fg = "cmnt" }
|
||||
"ui.statusline.normal" = { fg = "block", bg = "sun", modifiers = ["bold"] }
|
||||
"ui.statusline.insert" = { fg = "block", bg = "grass", modifiers = ["bold"] }
|
||||
"ui.statusline.select" = { fg = "block", bg = "wine", modifiers = ["bold"] }
|
||||
|
||||
"ui.bufferline" = { fg = "cmnt", bg = "block" }
|
||||
"ui.bufferline.active" = "sun"
|
||||
|
||||
"ui.popup" = { fg = "text", bg = "base" }
|
||||
"ui.popup.info" = { fg = "text", bg = "block" }
|
||||
|
||||
"ui.window" = { fg = "block", modifiers = ["bold"] }
|
||||
|
||||
"ui.help" = { fg = "text", bg = "block" }
|
||||
|
||||
"ui.text" = { fg = "text", bg = "base" }
|
||||
"ui.text.focus" = "sun"
|
||||
"ui.text.inactive" = { fg = "cmnt", modifiers = ["italic"] }
|
||||
"ui.text.info" = { bg = "block" }
|
||||
|
||||
"ui.virtual" = { fg = "block" }
|
||||
"ui.virtual.ruler" = { bg = "block" }
|
||||
"ui.virtual.indent-guide" = "sel"
|
||||
"ui.virtual.jump-label" = { fg = "attn", modifiers = ["bold"] }
|
||||
|
||||
"ui.menu" = { fg = "text", bg = "base" }
|
||||
"ui.menu.selected" = { bg = "sel" }
|
||||
"ui.menu.scroll" = "sel"
|
||||
|
||||
"ui.selection" = { bg = "sel" }
|
||||
|
||||
"ui.highlight" = { bg = "sel" }
|
||||
|
||||
error = "attn"
|
||||
warning = "fire"
|
||||
info = "pink"
|
||||
hint = "sky"
|
||||
|
||||
diagnostic = { underline.style = "line" }
|
||||
|
||||
[palette]
|
||||
# Reddish
|
||||
fire = "#EE7711"
|
||||
rose = "#EE7777"
|
||||
peach = "#EEBB77"
|
||||
pink = "#EEAAAA"
|
||||
wood = "#997755"
|
||||
|
||||
# Greenish
|
||||
grass = "#66CC33"
|
||||
mud = "#BBCC77"
|
||||
sun = "#EEEE11"
|
||||
|
||||
# Bluish
|
||||
sky = "#77AAAA"
|
||||
wine = "#775599"
|
||||
|
||||
# Ui
|
||||
base = "#111111"
|
||||
block = "#222222"
|
||||
sel = "#333333"
|
||||
cmnt = "#777777"
|
||||
text = "#EEEEEE"
|
||||
attn = "#EE1111"
|
Loading…
Reference in New Issue
Block a user