mirror of https://github.com/helix-editor/helix
Compare commits
14 Commits
cfc00fbdcb
...
6dd5dcbd49
Author | SHA1 | Date |
---|---|---|
|
6dd5dcbd49 | |
|
b01fbb4a22 | |
|
f75a26cb9b | |
|
21ae1c98fb | |
|
7b8a4b7a51 | |
|
715d4ae2d5 | |
|
22b184b570 | |
|
665ee4da22 | |
|
ecd18e3eb2 | |
|
e7f95ca6b2 | |
|
2a8542e541 | |
|
eb486a915f | |
|
84494f1035 | |
|
a4ede54648 |
|
@ -112,8 +112,8 @@
|
|||
| iex | ✓ | | | | |
|
||||
| ini | ✓ | | | | |
|
||||
| ink | ✓ | | | | |
|
||||
| inko | ✓ | ✓ | ✓ | | |
|
||||
| janet | ✓ | | | | |
|
||||
| inko | ✓ | ✓ | ✓ | ✓ | |
|
||||
| janet | ✓ | | ✓ | | |
|
||||
| java | ✓ | ✓ | ✓ | | `jdtls` |
|
||||
| javascript | ✓ | ✓ | ✓ | ✓ | `typescript-language-server` |
|
||||
| jinja | ✓ | | | | |
|
||||
|
|
|
@ -21,7 +21,7 @@ _hx() {
|
|||
|
||||
case "$2" in
|
||||
-*)
|
||||
mapfile -t COMPREPLY < <(compgen -W "-h --help --tutor -V --version -v -vv -vvv --health -g --grammar --vsplit --hsplit -c --config --log" -- """$2""")
|
||||
mapfile -t COMPREPLY < <(compgen -W "-h --help --tutor -V --version -v -vv -vvv --health -g --grammar --vsplit --hsplit -e --execute -c --config --log" -- """$2""")
|
||||
return 0
|
||||
;;
|
||||
*)
|
||||
|
|
|
@ -50,6 +50,8 @@ set edit:completion:arg-completer[hx] = {|@args|
|
|||
$candidate "--grammar" "(Fetch or build the tree-sitter grammars)"
|
||||
$candidate "--vsplit" "(Splits all given files vertically)"
|
||||
$candidate "--hsplit" "(Splits all given files horizontally)"
|
||||
$candidate "-e" "(Executes the given command on startup)"
|
||||
$candidate "--execute" "(Executes the given command on startup)"
|
||||
$candidate "--config" "(Specifies a file to use for configuration)"
|
||||
$candidate "--log" "(Specifies a file to write log data into)"
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@ complete -c hx -l hsplit -d "Splits all given files horizontally"
|
|||
complete -c hx -s c -l config -r -d "Specifies a file to use for config"
|
||||
complete -c hx -l log -r -d "Specifies a file to use for logging"
|
||||
complete -c hx -s w -l working-dir -d "Specify initial working directory" -xa "(__fish_complete_directories)"
|
||||
complete -c hx -s e -l execute -d "Executes the given command on startup"
|
||||
|
||||
function __hx_langs_ops
|
||||
hx --health languages | tail -n '+2' | string replace -fr '^(\S+) .*' '$1'
|
||||
|
|
|
@ -24,6 +24,7 @@ export extern hx [
|
|||
--version(-V), # Prints version information
|
||||
--vsplit, # Splits all given files vertically into different windows
|
||||
--hsplit, # Splits all given files horizontally into different windows
|
||||
--execute(-e), # Executes the given command on startup
|
||||
--working-dir(-w): glob, # Specify an initial working directory
|
||||
...files: glob, # Sets the input file to use, position can also be specified via file[:row[:col]]
|
||||
]
|
||||
|
|
|
@ -18,6 +18,8 @@ _hx() {
|
|||
"--hsplit[Splits all given files horizontally]" \
|
||||
"-c[Specifies a file to use for configuration]" \
|
||||
"--config[Specifies a file to use for configuration]" \
|
||||
"-e[Executes the given command on startup]" \
|
||||
"--execute[Executes the given command on startup]" \
|
||||
"-w[Specify initial working directory]" \
|
||||
"--working-dir[Specify initial working directory]" \
|
||||
"--log[Specifies a file to use for logging]" \
|
||||
|
|
|
@ -19,6 +19,8 @@ pub struct Args {
|
|||
pub config_file: Option<PathBuf>,
|
||||
pub files: IndexMap<PathBuf, Vec<Position>>,
|
||||
pub working_directory: Option<PathBuf>,
|
||||
/// The macro to execute on startup
|
||||
pub execute: Vec<helix_view::input::KeyEvent>,
|
||||
}
|
||||
|
||||
impl Args {
|
||||
|
@ -74,6 +76,10 @@ impl Args {
|
|||
Some(path) => args.log_file = Some(path.into()),
|
||||
None => anyhow::bail!("--log must specify a path to write"),
|
||||
},
|
||||
"-e" | "--execute" => match argv.next().as_deref() {
|
||||
Some(command) => args.execute = helix_view::input::parse_macro(command)?,
|
||||
None => anyhow::bail!("--execute receives a command to execute"),
|
||||
},
|
||||
"-w" | "--working-dir" => match argv.next().as_deref() {
|
||||
Some(path) => {
|
||||
args.working_directory = if Path::new(path).is_dir() {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
use anyhow::{Context, Error, Result};
|
||||
use crossterm::event::EventStream;
|
||||
use futures_util::{stream, StreamExt};
|
||||
use helix_loader::VERSION_AND_GIT_HASH;
|
||||
use helix_term::application::Application;
|
||||
use helix_term::args::Args;
|
||||
|
@ -40,7 +41,7 @@ fn main() -> Result<()> {
|
|||
|
||||
#[tokio::main]
|
||||
async fn main_impl() -> Result<i32> {
|
||||
let args = Args::parse_args().context("could not parse arguments")?;
|
||||
let mut args = Args::parse_args().context("could not parse arguments")?;
|
||||
|
||||
helix_loader::initialize_config_file(args.config_file.clone());
|
||||
helix_loader::initialize_log_file(args.log_file.clone());
|
||||
|
@ -75,6 +76,7 @@ FLAGS:
|
|||
--hsplit Splits all given files horizontally into different windows
|
||||
-w, --working-dir <path> Specify an initial working directory
|
||||
+N Open the first given file at line number N
|
||||
-e, --execute <command> Executes the given command on startup
|
||||
",
|
||||
env!("CARGO_PKG_NAME"),
|
||||
VERSION_AND_GIT_HASH,
|
||||
|
@ -147,10 +149,20 @@ FLAGS:
|
|||
helix_core::config::default_lang_loader()
|
||||
});
|
||||
|
||||
// sequence of key events to execute before launching the editor
|
||||
let execute_at_start =
|
||||
stream::iter(std::mem::take(&mut args.execute).into_iter().map(|item| {
|
||||
Ok(crossterm::event::Event::Key(
|
||||
crossterm::event::KeyEvent::from(item),
|
||||
))
|
||||
}));
|
||||
|
||||
// TODO: use the thread local executor to spawn the application task separately from the work pool
|
||||
let mut app = Application::new(args, config, lang_loader).context("unable to start Helix")?;
|
||||
|
||||
let exit_code = app.run(&mut EventStream::new()).await?;
|
||||
let exit_code = app
|
||||
.run(&mut execute_at_start.chain(EventStream::new()))
|
||||
.await?;
|
||||
|
||||
Ok(exit_code)
|
||||
}
|
||||
|
|
|
@ -356,7 +356,7 @@ fn directory_content(path: &Path) -> Result<Vec<(PathBuf, bool)>, std::io::Error
|
|||
.map(|entry| {
|
||||
(
|
||||
entry.path(),
|
||||
entry.file_type().is_ok_and(|file_type| file_type.is_dir()),
|
||||
std::fs::metadata(entry.path()).is_ok_and(|metadata| metadata.is_dir()),
|
||||
)
|
||||
})
|
||||
.collect();
|
||||
|
|
|
@ -65,6 +65,7 @@ julia = { command = "julia", timeout = 60, args = [ "--startup-file=no", "--hist
|
|||
just-lsp = { command = "just-lsp" }
|
||||
koka = { command = "koka", args = ["--language-server", "--lsstdio"] }
|
||||
koto-ls = { command = "koto-ls" }
|
||||
kotlin-lsp = { command = "kotlin-lsp", args = ["--stdio"] }
|
||||
kotlin-language-server = { command = "kotlin-language-server" }
|
||||
lean = { command = "lean", args = [ "--server", "--memory=1024" ] }
|
||||
ltex-ls = { command = "ltex-ls" }
|
||||
|
@ -3068,7 +3069,7 @@ formatter = { command = "inko", args = ["fmt", "-"] }
|
|||
|
||||
[[grammar]]
|
||||
name = "inko"
|
||||
source = { git = "https://github.com/inko-lang/tree-sitter-inko", rev = "7860637ce1b43f5f79cfb7cc3311bf3234e9479f" }
|
||||
source = { git = "https://github.com/inko-lang/tree-sitter-inko", rev = "f58a87ac4dc6a7955c64c9e4408fbd693e804686" }
|
||||
|
||||
[[language]]
|
||||
name = "bicep"
|
||||
|
@ -3422,7 +3423,7 @@ language-servers = ["just-lsp"]
|
|||
|
||||
[[grammar]]
|
||||
name = "just"
|
||||
source = { git = "https://github.com/poliorcetics/tree-sitter-just", rev = "8d03cfdd7ab89ff76d935827de1b93450fa0ec0a" }
|
||||
source = { git = "https://github.com/poliorcetics/tree-sitter-just", rev = "0f84211c637813bcf1eb32c9e35847cdaea8760d" }
|
||||
|
||||
[[language]]
|
||||
name = "gn"
|
||||
|
|
|
@ -78,7 +78,7 @@
|
|||
] @keyword.operator
|
||||
|
||||
[
|
||||
"class"
|
||||
"type"
|
||||
"trait"
|
||||
] @keyword.storage.type
|
||||
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
(class
|
||||
name: _ @definition.struct)
|
||||
|
||||
(trait
|
||||
name: _ @definition.interface)
|
||||
|
||||
(external_function
|
||||
name: _ @definition.function)
|
||||
|
||||
(method
|
||||
name: _ @definition.function)
|
||||
|
||||
(define_constant
|
||||
name: _ @definition.constant)
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,28 @@
|
|||
; aligns forms to the second position if there's two in a line:
|
||||
; (-> 10
|
||||
; (* 2)
|
||||
; (print))
|
||||
(par_tup_lit . (sym_lit) @first . (_) @anchor
|
||||
(#set! "scope" "tail")
|
||||
(#same-line? @first @anchor)
|
||||
; anything that doesn't match should be indented normally
|
||||
; from https://github.com/janet-lang/spork/blob/5601dc883535473bca28351cc6df04ed6c656c65/spork/fmt.janet#L87C12-L93C38
|
||||
(#not-match? @first "^(fn|match|with|with-dyns|def|def-|var|var-|defn|defn-|varfn|defmacro|defmacro-|defer|edefer|loop|seq|tabseq|catseq|generate|coro|for|each|eachp|eachk|case|cond|do|defglobal|varglobal|if|when|when-let|when-with|while|with-syms|with-vars|if-let|if-not|if-with|let|short-fn|try|unless|default|forever|upscope|repeat|forv|compwhen|compif|ev/spawn|ev/do-thread|ev/spawn-thread|ev/with-deadline|label|prompt|forever)$")) @align
|
||||
|
||||
; everything else should be indented normally:
|
||||
;
|
||||
; (let [foo 10]
|
||||
; (print foo))
|
||||
;
|
||||
; (foo
|
||||
; bar)
|
||||
(par_tup_lit . (sym_lit)) @indent
|
||||
|
||||
; for `{}` and `[]`:
|
||||
; {:foo 10
|
||||
; :bar 20}
|
||||
(struct_lit . (_) @anchor) @align
|
||||
|
||||
; [foo
|
||||
; bar]
|
||||
(sqr_tup_lit . (_) @anchor) @align
|
|
@ -0,0 +1,2 @@
|
|||
((comment) @injection.content
|
||||
(#set! injection.language "comment"))
|
|
@ -61,6 +61,9 @@
|
|||
(mod
|
||||
name: (identifier) @namespace)
|
||||
|
||||
(module_path
|
||||
name: (identifier) @namespace)
|
||||
|
||||
; Paths
|
||||
|
||||
(mod
|
||||
|
|
|
@ -30,6 +30,9 @@
|
|||
(function_call
|
||||
name: (identifier) @local.reference)
|
||||
|
||||
(module_path
|
||||
name: (identifier) @local.reference)
|
||||
|
||||
(recipe_dependency
|
||||
name: (identifier) @local.reference)
|
||||
|
||||
|
|
|
@ -3,126 +3,4 @@
|
|||
# Ported by: @satoqz
|
||||
# License: MIT
|
||||
|
||||
"attribute" = "green"
|
||||
"comment" = { fg = "grey1", modifiers = ["italic"] }
|
||||
"constant" = "fg0"
|
||||
"constant.builtin" = "purple"
|
||||
"constant.character.escape" = "green"
|
||||
"constant.numeric" = "purple"
|
||||
"constructor" = "green"
|
||||
"function" = "green"
|
||||
"keyword" = "red"
|
||||
"keyword.directive" = "purple"
|
||||
"keyword.operator" = "orange"
|
||||
"label" = "red"
|
||||
"namespace" = "yellow"
|
||||
"operator" = "orange"
|
||||
"punctuation" = "grey1"
|
||||
"punctuation.bracket" = "fg0"
|
||||
"punctuation.delimiter" = "grey1"
|
||||
"punctuation.special" = "blue"
|
||||
"special" = "green"
|
||||
"string" = "aqua"
|
||||
"string.regexp" = "green"
|
||||
"string.special.path" = "yellow"
|
||||
"string.special.symbol" = "fg0"
|
||||
"string.special.url" = { fg = "fg0", modifiers = ["underlined"] }
|
||||
"tag" = "orange"
|
||||
"type" = "yellow"
|
||||
"type.enum.variant" = "purple"
|
||||
"variable" = "fg0"
|
||||
"variable.builtin" = "purple"
|
||||
"variable.other.member" = "blue"
|
||||
"variable.parameter" = "fg0"
|
||||
|
||||
"markup.heading.1" = "red"
|
||||
"markup.heading.2" = "orange"
|
||||
"markup.heading.3" = "yellow"
|
||||
"markup.heading.4" = "green"
|
||||
"markup.heading.5" = "blue"
|
||||
"markup.heading.6" = "purple"
|
||||
|
||||
"markup.bold" = { fg = "fg0", modifiers = ["bold"] }
|
||||
"markup.italic" = { fg = "fg0", modifiers = ["italic"] }
|
||||
"markup.strikethrough" = { fg = "fg0", modifiers = ["crossed_out"] }
|
||||
|
||||
"markup.link.label" = "blue"
|
||||
"markup.link.text" = "yellow"
|
||||
"markup.link.url" = { fg = "blue", modifiers = ["underlined"] }
|
||||
"markup.list" = "blue"
|
||||
"markup.list.checked" = "green"
|
||||
"markup.list.unchecked" = "grey1"
|
||||
"markup.quote" = "grey1"
|
||||
"markup.raw" = "green"
|
||||
|
||||
"diff.delta" = "blue"
|
||||
"diff.minus" = "red"
|
||||
"diff.plus" = "green"
|
||||
|
||||
"diagnostic.error" = { underline = { color = "red", style = "curl" } }
|
||||
"diagnostic.hint" = { underline = { color = "green", style = "curl" } }
|
||||
"diagnostic.info" = { underline = { color = "blue", style = "curl" } }
|
||||
"diagnostic.unnecessary" = { modifiers = ["dim"] }
|
||||
"diagnostic.warning" = { underline = { color = "yellow", style = "curl" } }
|
||||
|
||||
error = "red"
|
||||
hint = "green"
|
||||
info = "blue"
|
||||
warning = "yellow"
|
||||
|
||||
"ui.background" = { fg = "fg0", bg = "bg0" }
|
||||
"ui.bufferline" = { fg = "fg1", bg = "bg4" }
|
||||
"ui.bufferline.active" = { fg = "bg0", bg = "grey2" }
|
||||
"ui.bufferline.background" = { bg = "bg1" }
|
||||
"ui.cursor" = { fg = "bg0", bg = "grey1" }
|
||||
"ui.cursor.primary" = { fg = "bg0", bg = "fg0" }
|
||||
"ui.cursor.match" = { bg = "bg2" }
|
||||
"ui.cursorline.primary" = { bg = "bg1" }
|
||||
"ui.help" = { fg = "grey1", bg = "bg0" }
|
||||
"ui.highlight" = { bg = "bg2" }
|
||||
"ui.linenr" = "bg3"
|
||||
"ui.linenr.selected" = "grey1"
|
||||
"ui.menu" = { fg = "fg1", bg = "bg2" }
|
||||
"ui.menu.scroll" = { fg = "grey0", bg = "bg1" }
|
||||
"ui.menu.selected" = { fg = "bg2", bg = "grey2" }
|
||||
"ui.popup" = { fg = "fg1", bg = "bg2" }
|
||||
"ui.popup.info" = { "fg" = "grey1", bg = "bg0" }
|
||||
"ui.selection" = { bg = "bg2" }
|
||||
"ui.statusline" = { fg = "fg1", bg = "bg1" }
|
||||
"ui.statusline.inactive" = { fg = "grey1", bg = "bg1" }
|
||||
"ui.statusline.insert" = { fg = "bg0", bg = "green" }
|
||||
"ui.statusline.normal" = { fg = "bg0", bg = "grey2" }
|
||||
"ui.statusline.select" = { fg = "bg0", bg = "red" }
|
||||
"ui.text" = "fg0"
|
||||
"ui.text.directory" = { fg = "blue" }
|
||||
"ui.text.focus" = { bg = "bg2" }
|
||||
"ui.text.inactive" = { fg = "grey1" }
|
||||
"ui.text.info" = "grey1"
|
||||
"ui.virtual" = "grey0"
|
||||
"ui.virtual.indent-guide" = "bg3"
|
||||
"ui.virtual.inlay-hint" = "grey0"
|
||||
"ui.virtual.jump-label" = "grey2"
|
||||
"ui.virtual.ruler" = { bg = "bg1" }
|
||||
"ui.window" = { fg = "bg3" }
|
||||
|
||||
[palette]
|
||||
fg0 = "#d4be98"
|
||||
fg1 = "#ddc7a1"
|
||||
|
||||
bg0 = "#282828"
|
||||
bg1 = "#32302f"
|
||||
bg2 = "#45403d"
|
||||
bg3 = "#5a524c"
|
||||
bg4 = "#504945"
|
||||
|
||||
grey0 = "#7c6f64"
|
||||
grey1 = "#928374"
|
||||
grey2 = "#a89984"
|
||||
|
||||
aqua = "#89b482"
|
||||
blue = "#7daea3"
|
||||
green = "#a9b665"
|
||||
orange = "#e78a4e"
|
||||
purple = "#d3869b"
|
||||
red = "#ea6962"
|
||||
yellow = "#d8a657"
|
||||
inherits = "gruvbox_material_dark_medium"
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
# Gruvbox Material Dark Hard for Helix
|
||||
# Original Author: @sainnhe (https://github.com/sainnhe/gruvbox-material)
|
||||
# Base theme ported by: @satoqz
|
||||
# Palette ported by: @ivan-shymkiv
|
||||
# License: MIT
|
||||
|
||||
inherits = "gruvbox_material_dark_medium"
|
||||
|
||||
[palette]
|
||||
bg0 = "#1d2021"
|
||||
bg1 = "#282828"
|
||||
bg2 = "#3c3836"
|
||||
bg3 = "#504945"
|
|
@ -0,0 +1,128 @@
|
|||
# Gruvbox Material Dark Medium for Helix
|
||||
# Original Author: @sainnhe (https://github.com/sainnhe/gruvbox-material)
|
||||
# Ported by: @satoqz
|
||||
# License: MIT
|
||||
|
||||
"attribute" = "green"
|
||||
"comment" = { fg = "grey1", modifiers = ["italic"] }
|
||||
"constant" = "fg0"
|
||||
"constant.builtin" = "purple"
|
||||
"constant.character.escape" = "green"
|
||||
"constant.numeric" = "purple"
|
||||
"constructor" = "green"
|
||||
"function" = "green"
|
||||
"keyword" = "red"
|
||||
"keyword.directive" = "purple"
|
||||
"keyword.operator" = "orange"
|
||||
"label" = "red"
|
||||
"namespace" = "yellow"
|
||||
"operator" = "orange"
|
||||
"punctuation" = "grey1"
|
||||
"punctuation.bracket" = "fg0"
|
||||
"punctuation.delimiter" = "grey1"
|
||||
"punctuation.special" = "blue"
|
||||
"special" = "green"
|
||||
"string" = "aqua"
|
||||
"string.regexp" = "green"
|
||||
"string.special.path" = "yellow"
|
||||
"string.special.symbol" = "fg0"
|
||||
"string.special.url" = { fg = "fg0", modifiers = ["underlined"] }
|
||||
"tag" = "orange"
|
||||
"type" = "yellow"
|
||||
"type.enum.variant" = "purple"
|
||||
"variable" = "fg0"
|
||||
"variable.builtin" = "purple"
|
||||
"variable.other.member" = "blue"
|
||||
"variable.parameter" = "fg0"
|
||||
|
||||
"markup.heading.1" = "red"
|
||||
"markup.heading.2" = "orange"
|
||||
"markup.heading.3" = "yellow"
|
||||
"markup.heading.4" = "green"
|
||||
"markup.heading.5" = "blue"
|
||||
"markup.heading.6" = "purple"
|
||||
|
||||
"markup.bold" = { fg = "fg0", modifiers = ["bold"] }
|
||||
"markup.italic" = { fg = "fg0", modifiers = ["italic"] }
|
||||
"markup.strikethrough" = { fg = "fg0", modifiers = ["crossed_out"] }
|
||||
|
||||
"markup.link.label" = "blue"
|
||||
"markup.link.text" = "yellow"
|
||||
"markup.link.url" = { fg = "blue", modifiers = ["underlined"] }
|
||||
"markup.list" = "blue"
|
||||
"markup.list.checked" = "green"
|
||||
"markup.list.unchecked" = "grey1"
|
||||
"markup.quote" = "grey1"
|
||||
"markup.raw" = "green"
|
||||
|
||||
"diff.delta" = "blue"
|
||||
"diff.minus" = "red"
|
||||
"diff.plus" = "green"
|
||||
|
||||
"diagnostic.error" = { underline = { color = "red", style = "curl" } }
|
||||
"diagnostic.hint" = { underline = { color = "green", style = "curl" } }
|
||||
"diagnostic.info" = { underline = { color = "blue", style = "curl" } }
|
||||
"diagnostic.unnecessary" = { modifiers = ["dim"] }
|
||||
"diagnostic.warning" = { underline = { color = "yellow", style = "curl" } }
|
||||
|
||||
error = "red"
|
||||
hint = "green"
|
||||
info = "blue"
|
||||
warning = "yellow"
|
||||
|
||||
"ui.background" = { fg = "fg0", bg = "bg0" }
|
||||
"ui.bufferline" = { fg = "fg1", bg = "bg4" }
|
||||
"ui.bufferline.active" = { fg = "bg0", bg = "grey2" }
|
||||
"ui.bufferline.background" = { bg = "bg1" }
|
||||
"ui.cursor" = { fg = "bg0", bg = "grey1" }
|
||||
"ui.cursor.primary" = { fg = "bg0", bg = "fg0" }
|
||||
"ui.cursor.match" = { bg = "bg2" }
|
||||
"ui.cursorline.primary" = { bg = "bg1" }
|
||||
"ui.help" = { fg = "grey1", bg = "bg0" }
|
||||
"ui.highlight" = { bg = "bg2" }
|
||||
"ui.linenr" = "bg3"
|
||||
"ui.linenr.selected" = "grey1"
|
||||
"ui.menu" = { fg = "fg1", bg = "bg2" }
|
||||
"ui.menu.scroll" = { fg = "grey0", bg = "bg1" }
|
||||
"ui.menu.selected" = { fg = "bg2", bg = "grey2" }
|
||||
"ui.popup" = { fg = "fg1", bg = "bg2" }
|
||||
"ui.popup.info" = { "fg" = "grey1", bg = "bg0" }
|
||||
"ui.selection" = { bg = "bg2" }
|
||||
"ui.statusline" = { fg = "fg1", bg = "bg1" }
|
||||
"ui.statusline.inactive" = { fg = "grey1", bg = "bg1" }
|
||||
"ui.statusline.insert" = { fg = "bg0", bg = "green" }
|
||||
"ui.statusline.normal" = { fg = "bg0", bg = "grey2" }
|
||||
"ui.statusline.select" = { fg = "bg0", bg = "red" }
|
||||
"ui.text" = "fg0"
|
||||
"ui.text.directory" = { fg = "blue" }
|
||||
"ui.text.focus" = { bg = "bg2" }
|
||||
"ui.text.inactive" = { fg = "grey1" }
|
||||
"ui.text.info" = "grey1"
|
||||
"ui.virtual" = "grey0"
|
||||
"ui.virtual.indent-guide" = "bg3"
|
||||
"ui.virtual.inlay-hint" = "grey0"
|
||||
"ui.virtual.jump-label" = "grey2"
|
||||
"ui.virtual.ruler" = { bg = "bg1" }
|
||||
"ui.window" = { fg = "bg3" }
|
||||
|
||||
[palette]
|
||||
fg0 = "#d4be98"
|
||||
fg1 = "#ddc7a1"
|
||||
|
||||
bg0 = "#282828"
|
||||
bg1 = "#32302f"
|
||||
bg2 = "#45403d"
|
||||
bg3 = "#5a524c"
|
||||
bg4 = "#504945"
|
||||
|
||||
grey0 = "#7c6f64"
|
||||
grey1 = "#928374"
|
||||
grey2 = "#a89984"
|
||||
|
||||
aqua = "#89b482"
|
||||
blue = "#7daea3"
|
||||
green = "#a9b665"
|
||||
orange = "#e78a4e"
|
||||
purple = "#d3869b"
|
||||
red = "#ea6962"
|
||||
yellow = "#d8a657"
|
|
@ -0,0 +1,14 @@
|
|||
# Gruvbox Material Dark Soft for Helix
|
||||
# Original Author: @sainnhe (https://github.com/sainnhe/gruvbox-material)
|
||||
# Base theme ported by: @satoqz
|
||||
# Palette ported by: @ivan-shymkiv
|
||||
# License: MIT
|
||||
|
||||
inherits = "gruvbox_material_dark_medium"
|
||||
|
||||
[palette]
|
||||
bg0 = "#32302f"
|
||||
bg1 = "#3c3836"
|
||||
bg2 = "#504945"
|
||||
bg3 = "#665c54"
|
||||
bg4 = "#5b534d"
|
|
@ -0,0 +1,14 @@
|
|||
# Gruvbox Material Light Hard for Helix
|
||||
# Original Author: @sainnhe (https://github.com/sainnhe/gruvbox-material)
|
||||
# Base theme ported by: @satoqz
|
||||
# Palette ported by: @ivan-shymkiv
|
||||
# License: MIT
|
||||
|
||||
inherits = "gruvbox_material_light_medium"
|
||||
|
||||
[palette]
|
||||
bg0 = "#f9f5d7"
|
||||
bg1 = "#f5edca"
|
||||
bg2 = "#f2e5bc"
|
||||
bg3 = "#ebdbb2"
|
||||
bg4 = "#eee0b7"
|
|
@ -0,0 +1,129 @@
|
|||
# Gruvbox Material Light Medium for Helix
|
||||
# Original Author: @sainnhe (https://github.com/sainnhe/gruvbox-material)
|
||||
# Base theme ported by: @satoqz
|
||||
# Palette ported by: @ivan-shymkiv
|
||||
# License: MIT
|
||||
|
||||
"attribute" = "green"
|
||||
"comment" = { fg = "grey1", modifiers = ["italic"] }
|
||||
"constant" = "fg0"
|
||||
"constant.builtin" = "purple"
|
||||
"constant.character.escape" = "green"
|
||||
"constant.numeric" = "purple"
|
||||
"constructor" = "green"
|
||||
"function" = "green"
|
||||
"keyword" = "red"
|
||||
"keyword.directive" = "purple"
|
||||
"keyword.operator" = "orange"
|
||||
"label" = "red"
|
||||
"namespace" = "yellow"
|
||||
"operator" = "orange"
|
||||
"punctuation" = "grey1"
|
||||
"punctuation.bracket" = "fg0"
|
||||
"punctuation.delimiter" = "grey1"
|
||||
"punctuation.special" = "blue"
|
||||
"special" = "green"
|
||||
"string" = "aqua"
|
||||
"string.regexp" = "green"
|
||||
"string.special.path" = "yellow"
|
||||
"string.special.symbol" = "fg0"
|
||||
"string.special.url" = { fg = "fg0", modifiers = ["underlined"] }
|
||||
"tag" = "orange"
|
||||
"type" = "yellow"
|
||||
"type.enum.variant" = "purple"
|
||||
"variable" = "fg0"
|
||||
"variable.builtin" = "purple"
|
||||
"variable.other.member" = "blue"
|
||||
"variable.parameter" = "fg0"
|
||||
|
||||
"markup.heading.1" = "red"
|
||||
"markup.heading.2" = "orange"
|
||||
"markup.heading.3" = "yellow"
|
||||
"markup.heading.4" = "green"
|
||||
"markup.heading.5" = "blue"
|
||||
"markup.heading.6" = "purple"
|
||||
|
||||
"markup.bold" = { fg = "fg0", modifiers = ["bold"] }
|
||||
"markup.italic" = { fg = "fg0", modifiers = ["italic"] }
|
||||
"markup.strikethrough" = { fg = "fg0", modifiers = ["crossed_out"] }
|
||||
|
||||
"markup.link.label" = "blue"
|
||||
"markup.link.text" = "yellow"
|
||||
"markup.link.url" = { fg = "blue", modifiers = ["underlined"] }
|
||||
"markup.list" = "blue"
|
||||
"markup.list.checked" = "green"
|
||||
"markup.list.unchecked" = "grey1"
|
||||
"markup.quote" = "grey1"
|
||||
"markup.raw" = "green"
|
||||
|
||||
"diff.delta" = "blue"
|
||||
"diff.minus" = "red"
|
||||
"diff.plus" = "green"
|
||||
|
||||
"diagnostic.error" = { underline = { color = "red", style = "curl" } }
|
||||
"diagnostic.hint" = { underline = { color = "green", style = "curl" } }
|
||||
"diagnostic.info" = { underline = { color = "blue", style = "curl" } }
|
||||
"diagnostic.unnecessary" = { modifiers = ["dim"] }
|
||||
"diagnostic.warning" = { underline = { color = "yellow", style = "curl" } }
|
||||
|
||||
error = "red"
|
||||
hint = "green"
|
||||
info = "blue"
|
||||
warning = "yellow"
|
||||
|
||||
"ui.background" = { fg = "fg0", bg = "bg0" }
|
||||
"ui.bufferline" = { fg = "fg1", bg = "bg4" }
|
||||
"ui.bufferline.active" = { fg = "bg0", bg = "grey2" }
|
||||
"ui.bufferline.background" = { bg = "bg1" }
|
||||
"ui.cursor" = { fg = "bg0", bg = "grey1" }
|
||||
"ui.cursor.primary" = { fg = "bg0", bg = "fg0" }
|
||||
"ui.cursor.match" = { bg = "bg2" }
|
||||
"ui.cursorline.primary" = { bg = "bg1" }
|
||||
"ui.help" = { fg = "grey1", bg = "bg0" }
|
||||
"ui.highlight" = { bg = "bg2" }
|
||||
"ui.linenr" = "bg3"
|
||||
"ui.linenr.selected" = "grey1"
|
||||
"ui.menu" = { fg = "fg1", bg = "bg2" }
|
||||
"ui.menu.scroll" = { fg = "grey0", bg = "bg1" }
|
||||
"ui.menu.selected" = { fg = "bg2", bg = "grey2" }
|
||||
"ui.popup" = { fg = "fg1", bg = "bg2" }
|
||||
"ui.popup.info" = { "fg" = "grey1", bg = "bg0" }
|
||||
"ui.selection" = { bg = "bg2" }
|
||||
"ui.statusline" = { fg = "fg1", bg = "bg1" }
|
||||
"ui.statusline.inactive" = { fg = "grey1", bg = "bg1" }
|
||||
"ui.statusline.insert" = { fg = "bg0", bg = "green" }
|
||||
"ui.statusline.normal" = { fg = "bg0", bg = "grey2" }
|
||||
"ui.statusline.select" = { fg = "bg0", bg = "red" }
|
||||
"ui.text" = "fg0"
|
||||
"ui.text.directory" = { fg = "blue" }
|
||||
"ui.text.focus" = { bg = "bg2" }
|
||||
"ui.text.inactive" = { fg = "grey1" }
|
||||
"ui.text.info" = "grey1"
|
||||
"ui.virtual" = "grey0"
|
||||
"ui.virtual.indent-guide" = "bg3"
|
||||
"ui.virtual.inlay-hint" = "grey0"
|
||||
"ui.virtual.jump-label" = "grey2"
|
||||
"ui.virtual.ruler" = { bg = "bg1" }
|
||||
"ui.window" = { fg = "bg3" }
|
||||
|
||||
[palette]
|
||||
fg0 = "#654735"
|
||||
fg1 = "#4f3829"
|
||||
|
||||
bg0 = "#fbf1c7"
|
||||
bg1 = "#f4e8be"
|
||||
bg2 = "#eee0b7"
|
||||
bg3 = "#ddccab"
|
||||
bg4 = "#e5d5ad"
|
||||
|
||||
grey0 = "#a89984"
|
||||
grey1 = "#928374"
|
||||
grey2 = "#7c6f64"
|
||||
|
||||
aqua = "#4c7a5d"
|
||||
blue = "#45707a"
|
||||
green = "#6c782e"
|
||||
orange = "#c35e0a"
|
||||
purple = "#945e80"
|
||||
red = "#c14a4a"
|
||||
yellow = "#b47109"
|
|
@ -0,0 +1,14 @@
|
|||
# Gruvbox Material Light Soft for Helix
|
||||
# Original Author: @sainnhe (https://github.com/sainnhe/gruvbox-material)
|
||||
# Base theme ported by: @satoqz
|
||||
# Palette ported by: @ivan-shymkiv
|
||||
# License: MIT
|
||||
|
||||
inherits = "gruvbox_material_light_medium"
|
||||
|
||||
[palette]
|
||||
bg0 = "#f2e5bc"
|
||||
bg1 = "#eddeb5"
|
||||
bg2 = "#e6d5ae"
|
||||
bg3 = "#d5c4a1"
|
||||
bg4 = "#dac9a5"
|
Loading…
Reference in New Issue