Compare commits

...

14 Commits

Author SHA1 Message Date
Ricardo Fernández Serrata
df7ee9378d
Merge a430e17796 into f305c7299d 2024-11-21 14:29:11 -04:00
Lens0021 / Leslie
f305c7299d
Add support for Amber-lang (#12021)
Co-authored-by: Phoenix Himself <pkaras.it@gmail.com>
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
2024-11-21 10:09:42 -06:00
Valentin B.
9e0d2d0a19
chore(solidity): add highlight queries (#12102)
Add highlights for `hex` and `unicode` string prefixes and YUL booleans
2024-11-21 07:58:14 -06:00
Niklas Gruhn
b8313da5a8
Add language support for Quint (#11898)
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
2024-11-20 17:56:24 -06:00
Egor Afanasin
32ff0fce4a
Add Sunset theme (#12093) 2024-11-20 17:26:44 -06:00
yehor
9e171e7d1d
Add default-yank-register option (#11430)
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
2024-11-20 17:24:55 -06:00
Teemu Säilynoja
b92e8abfb3
Update Snakemake language config (#11936) 2024-11-20 17:20:51 -06:00
PORTALSURFER
8807dbfc40
Update current hex themes, add a new hex theme (#10849) 2024-11-20 17:20:04 -06:00
Arthur
15b478d433
hyprlang: add hyprls language server (#11056)
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
2024-11-20 17:16:49 -06:00
Michael Davis
467fad51b1
clipboard: Sway builtin provider yank and paste commands
The configuration here is not super intuitive - in order to yank from
a clipboard provider we want it to paste the clipboard and in order to
paste to the clipboard we want it to yank the contents we pass.

This swaps the programs for yank and paste to align with that.

Ref #10839
2024-11-20 18:10:46 -05:00
Michael Davis
b855cd0cda
clipboard: Fix builtin_names for x-clip, x-sel, win-32-yank
Copy/paste error from #10839
2024-11-20 18:10:31 -05:00
Rudxain
a430e17796 https://github.com/helix-editor/helix/pull/11066/files#r1667392149 2024-07-07 10:08:15 -04:00
Ricardo Fernández Serrata
d7c56fb689
use xdg-* to install desktop icon only 2024-07-03 06:34:17 -04:00
Ricardo Fernández Serrata
7d5498a918
use xdg-utils to install *.desktop shortcut 2024-07-01 02:01:52 -04:00
15 changed files with 516 additions and 72 deletions

View File

@ -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:

View File

@ -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"]` |

View File

@ -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 | ✓ | | | |

View File

@ -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(),
);

View File

@ -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")]

View File

@ -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),

View File

@ -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" }

View 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)

View 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))

View File

@ -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

View File

@ -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"

View 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"

View File

@ -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"

View File

@ -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
View 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"