logiguard fork: GPUI xdg-activation keyboard-focus serial fix
Some checks failed
Update All Top Ranking Issues / update_top_ranking_issues (push) Has been cancelled
Triage Project Sync (#84) / Sync triage project (push) Has been cancelled
release_nightly / notify_on_failure (push) Has been cancelled
release_nightly / check_style (push) Has been cancelled
release_nightly / run_tests_windows (push) Has been cancelled
release_nightly / clippy_windows (push) Has been cancelled
release_nightly / bundle_linux_aarch64 (push) Has been cancelled
release_nightly / bundle_linux_x86_64 (push) Has been cancelled
release_nightly / bundle_mac_aarch64 (push) Has been cancelled
release_nightly / bundle_mac_x86_64 (push) Has been cancelled
release_nightly / bundle_windows_aarch64 (push) Has been cancelled
release_nightly / bundle_windows_x86_64 (push) Has been cancelled
release_nightly / build_nix_linux_x86_64 (push) Has been cancelled
release_nightly / build_nix_mac_aarch64 (push) Has been cancelled
release_nightly / update_nightly_tag (push) Has been cancelled
Hotfix Review Monitor / check-hotfix-reviews (push) Has been cancelled
Stale PR Review Reminder / check-stale-prs (push) Has been cancelled
Update Weekly Top Ranking Issues / update_top_ranking_issues (push) Has been cancelled
Bump collab-staging Tag / update-collab-staging-tag (push) Has been cancelled
compliance_check / scheduled_compliance_check (push) Has been cancelled
Some checks failed
Update All Top Ranking Issues / update_top_ranking_issues (push) Has been cancelled
Triage Project Sync (#84) / Sync triage project (push) Has been cancelled
release_nightly / notify_on_failure (push) Has been cancelled
release_nightly / check_style (push) Has been cancelled
release_nightly / run_tests_windows (push) Has been cancelled
release_nightly / clippy_windows (push) Has been cancelled
release_nightly / bundle_linux_aarch64 (push) Has been cancelled
release_nightly / bundle_linux_x86_64 (push) Has been cancelled
release_nightly / bundle_mac_aarch64 (push) Has been cancelled
release_nightly / bundle_mac_x86_64 (push) Has been cancelled
release_nightly / bundle_windows_aarch64 (push) Has been cancelled
release_nightly / bundle_windows_x86_64 (push) Has been cancelled
release_nightly / build_nix_linux_x86_64 (push) Has been cancelled
release_nightly / build_nix_mac_aarch64 (push) Has been cancelled
release_nightly / update_nightly_tag (push) Has been cancelled
Hotfix Review Monitor / check-hotfix-reviews (push) Has been cancelled
Stale PR Review Reminder / check-stale-prs (push) Has been cancelled
Update Weekly Top Ranking Issues / update_top_ranking_issues (push) Has been cancelled
Bump collab-staging Tag / update-collab-staging-tag (push) Has been cancelled
compliance_check / scheduled_compliance_check (push) Has been cancelled
Single-commit orphan branch: full zed-industries/zed @ 8c74db0 source tree with a 3-file patch applied (no upstream history). Patch (crates/gpui_linux/src/linux/wayland/): - serial.rs: add SerialKind::KeyboardEnter - client.rs: store wl_keyboard.enter serial; add latest_serial_of() - window.rs: activate() uses keyboard-enter serial (Mutter focus gate) Mutter honors window activation only when the token carries the keyboard- focus serial from wl_keyboard.enter; GPUI used a stale mouse-press serial. See docs/tray-window-focus-wayland.md in logiguard. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
62
crates/grammars/src/bash/brackets.scm
Normal file
62
crates/grammars/src/bash/brackets.scm
Normal file
@@ -0,0 +1,62 @@
|
||||
("(" @open
|
||||
")" @close)
|
||||
|
||||
("[" @open
|
||||
"]" @close)
|
||||
|
||||
("{" @open
|
||||
"}" @close)
|
||||
|
||||
(("\"" @open
|
||||
"\"" @close)
|
||||
(#set! rainbow.exclude))
|
||||
|
||||
(("`" @open
|
||||
"`" @close)
|
||||
(#set! rainbow.exclude))
|
||||
|
||||
(("do" @open
|
||||
"done" @close)
|
||||
(#set! newline.only)
|
||||
(#set! rainbow.exclude))
|
||||
|
||||
((case_statement
|
||||
("in" @open
|
||||
"esac" @close))
|
||||
(#set! newline.only)
|
||||
(#set! rainbow.exclude))
|
||||
|
||||
((if_statement
|
||||
(elif_clause
|
||||
"then" @open)
|
||||
(else_clause
|
||||
"else" @close))
|
||||
(#set! newline.only)
|
||||
(#set! rainbow.exclude))
|
||||
|
||||
((if_statement
|
||||
(else_clause
|
||||
"else" @open)
|
||||
"fi" @close)
|
||||
(#set! newline.only)
|
||||
(#set! rainbow.exclude))
|
||||
|
||||
((if_statement
|
||||
"then" @open
|
||||
(elif_clause
|
||||
"elif" @close))
|
||||
(#set! newline.only)
|
||||
(#set! rainbow.exclude))
|
||||
|
||||
((if_statement
|
||||
"then" @open
|
||||
(else_clause
|
||||
"else" @close))
|
||||
(#set! newline.only)
|
||||
(#set! rainbow.exclude))
|
||||
|
||||
((if_statement
|
||||
("then" @open
|
||||
"fi" @close))
|
||||
(#set! newline.only)
|
||||
(#set! rainbow.exclude))
|
||||
38
crates/grammars/src/bash/config.toml
Normal file
38
crates/grammars/src/bash/config.toml
Normal file
@@ -0,0 +1,38 @@
|
||||
name = "Shell Script"
|
||||
code_fence_block_name = "bash"
|
||||
grammar = "bash"
|
||||
path_suffixes = ["sh", "bash", "bashrc", "bash_profile", "bash_aliases", "bash_logout", "bats", "profile", "zsh", "zshrc", "zshenv", "zsh_profile", "zsh_aliases", "zsh_histfile", "zlogin", "zprofile", ".env", "PKGBUILD", "APKBUILD"]
|
||||
modeline_aliases = ["sh", "shell", "zsh", "fish"]
|
||||
line_comments = ["# "]
|
||||
first_line_pattern = '^#!.*\b(?:ash|bash|bats|dash|sh|zsh)\b'
|
||||
autoclose_before = "}])"
|
||||
brackets = [
|
||||
{ start = "[", end = "]", close = true, newline = false },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "\"", end = "\"", close = true, newline = false, not_in = ["comment", "string"] },
|
||||
{ start = "'", end = "'", close = true, newline = false, not_in = ["string", "comment"] },
|
||||
{ start = "do", end = "done", close = false, newline = true, not_in = ["comment", "string"] },
|
||||
{ start = "then", end = "fi", close = false, newline = true, not_in = ["comment", "string"] },
|
||||
{ start = "then", end = "else", close = false, newline = true, not_in = ["comment", "string"] },
|
||||
{ start = "then", end = "elif", close = false, newline = true, not_in = ["comment", "string"] },
|
||||
{ start = "in", end = "esac", close = false, newline = true, not_in = ["comment", "string"] },
|
||||
]
|
||||
|
||||
auto_indent_using_last_non_empty_line = false
|
||||
increase_indent_pattern = "^\\s*(\\b(else|elif)\\b|([^#]+\\b(do|then|in)\\b)|([\\w\\*]+\\)))\\s*$"
|
||||
decrease_indent_patterns = [
|
||||
{ pattern = "^\\s*elif\\b.*", valid_after = ["if", "elif"] },
|
||||
{ pattern = "^\\s*else\\b.*", valid_after = ["if", "elif", "for", "while"] },
|
||||
{ pattern = "^\\s*fi\\b.*", valid_after = ["if", "elif", "else"] },
|
||||
{ pattern = "^\\s*done\\b.*", valid_after = ["for", "while"] },
|
||||
{ pattern = "^\\s*esac\\b.*", valid_after = ["case"] },
|
||||
{ pattern = "^\\s*[\\w\\*]+\\)\\s*$", valid_after = ["case_item"] },
|
||||
]
|
||||
|
||||
# We can't use decrease_indent_patterns simply for elif, because
|
||||
# there is bug in tree sitter which throws ERROR on if match.
|
||||
#
|
||||
# This is workaround. That means, elif will outdents with despite
|
||||
# of wrong context. Like using elif after else.
|
||||
decrease_indent_pattern = "(^|\\s+|;)(elif)\\b.*$"
|
||||
124
crates/grammars/src/bash/highlights.scm
Normal file
124
crates/grammars/src/bash/highlights.scm
Normal file
@@ -0,0 +1,124 @@
|
||||
[
|
||||
(string)
|
||||
(raw_string)
|
||||
(heredoc_body)
|
||||
(heredoc_start)
|
||||
(heredoc_end)
|
||||
(ansi_c_string)
|
||||
(word)
|
||||
] @string
|
||||
|
||||
(variable_name) @variable
|
||||
|
||||
[
|
||||
"export"
|
||||
"function"
|
||||
"unset"
|
||||
"local"
|
||||
"declare"
|
||||
] @keyword
|
||||
|
||||
[
|
||||
"case"
|
||||
"do"
|
||||
"done"
|
||||
"elif"
|
||||
"else"
|
||||
"esac"
|
||||
"fi"
|
||||
"for"
|
||||
"if"
|
||||
"in"
|
||||
"select"
|
||||
"then"
|
||||
"until"
|
||||
"while"
|
||||
] @keyword.control
|
||||
|
||||
(comment) @comment
|
||||
|
||||
; Shebang
|
||||
((program
|
||||
.
|
||||
(comment) @keyword.directive)
|
||||
(#match? @keyword.directive "^#![ \t]*/"))
|
||||
|
||||
(function_definition
|
||||
name: (word) @function)
|
||||
|
||||
(command_name
|
||||
(word) @function)
|
||||
|
||||
(command
|
||||
argument: [
|
||||
(word) @variable.parameter
|
||||
(_
|
||||
(word) @variable.parameter)
|
||||
])
|
||||
|
||||
[
|
||||
(file_descriptor)
|
||||
(number)
|
||||
] @number
|
||||
|
||||
(regex) @string.regex
|
||||
|
||||
[
|
||||
(command_substitution)
|
||||
(process_substitution)
|
||||
(expansion)
|
||||
] @embedded
|
||||
|
||||
[
|
||||
"$"
|
||||
"&&"
|
||||
">"
|
||||
"<<"
|
||||
">>"
|
||||
">&"
|
||||
">&-"
|
||||
"<"
|
||||
"|"
|
||||
":"
|
||||
"//"
|
||||
"/"
|
||||
"%"
|
||||
"%%"
|
||||
"#"
|
||||
"##"
|
||||
"="
|
||||
"=="
|
||||
] @operator
|
||||
|
||||
(test_operator) @keyword.operator
|
||||
|
||||
";" @punctuation.delimiter
|
||||
|
||||
[
|
||||
"("
|
||||
")"
|
||||
"{"
|
||||
"}"
|
||||
"["
|
||||
"]"
|
||||
] @punctuation.bracket
|
||||
|
||||
(simple_expansion
|
||||
"$" @punctuation.special)
|
||||
|
||||
(expansion
|
||||
"${" @punctuation.special
|
||||
"}" @punctuation.special) @embedded
|
||||
|
||||
(command_substitution
|
||||
"$(" @punctuation.special
|
||||
")" @punctuation.special)
|
||||
|
||||
((command
|
||||
(_) @constant)
|
||||
(#match? @constant "^-"))
|
||||
|
||||
(case_item
|
||||
value: (_) @string.regex)
|
||||
|
||||
(special_variable_name) @variable.special
|
||||
27
crates/grammars/src/bash/indents.scm
Normal file
27
crates/grammars/src/bash/indents.scm
Normal file
@@ -0,0 +1,27 @@
|
||||
(_
|
||||
"["
|
||||
"]" @end) @indent
|
||||
|
||||
(_
|
||||
"{"
|
||||
"}" @end) @indent
|
||||
|
||||
(_
|
||||
"("
|
||||
")" @end) @indent
|
||||
|
||||
(function_definition) @start.function
|
||||
|
||||
(if_statement) @start.if
|
||||
|
||||
(elif_clause) @start.elif
|
||||
|
||||
(else_clause) @start.else
|
||||
|
||||
(for_statement) @start.for
|
||||
|
||||
(while_statement) @start.while
|
||||
|
||||
(case_statement) @start.case
|
||||
|
||||
(case_item) @start.case_item
|
||||
2
crates/grammars/src/bash/injections.scm
Normal file
2
crates/grammars/src/bash/injections.scm
Normal file
@@ -0,0 +1,2 @@
|
||||
((comment) @injection.content
|
||||
(#set! injection.language "comment"))
|
||||
3
crates/grammars/src/bash/overrides.scm
Normal file
3
crates/grammars/src/bash/overrides.scm
Normal file
@@ -0,0 +1,3 @@
|
||||
(comment) @comment.inclusive
|
||||
|
||||
(string) @string
|
||||
2
crates/grammars/src/bash/redactions.scm
Normal file
2
crates/grammars/src/bash/redactions.scm
Normal file
@@ -0,0 +1,2 @@
|
||||
(variable_assignment
|
||||
value: (_) @redact)
|
||||
5
crates/grammars/src/bash/runnables.scm
Normal file
5
crates/grammars/src/bash/runnables.scm
Normal file
@@ -0,0 +1,5 @@
|
||||
; Run bash scripts
|
||||
((program
|
||||
.
|
||||
(_) @run) @_bash-script
|
||||
(#set! tag bash-script))
|
||||
7
crates/grammars/src/bash/textobjects.scm
Normal file
7
crates/grammars/src/bash/textobjects.scm
Normal file
@@ -0,0 +1,7 @@
|
||||
(function_definition
|
||||
body: (_
|
||||
"{"
|
||||
(_)* @function.inside
|
||||
"}")) @function.around
|
||||
|
||||
(comment) @comment.around
|
||||
Reference in New Issue
Block a user