Compare commits

..
5 Commits
Author SHA1 Message Date
josh 92a41d8aad Fix tab/shift-tab key bindings for fzf-lua 2026-10-16 12:04:00 -04:00
josh 88f16fd877 Add wl-clipboard dependency for Wayland 2026-08-25 14:45:24 -04:00
josh 99a9603b87 For *.rs.erb, set eruby_subtype to "rust" 2026-08-21 13:05:50 -04:00
josh 5723c9d3c2 Update syntax/propane.vim 2026-07-05 20:55:03 -04:00
josh 1df73b0a74 Update syntax/propane.vim for propane 4.5.0 2026-06-29 23:46:43 -04:00
3 changed files with 34 additions and 3 deletions

No files matched your search

+1 -1
View File
@@ -3,7 +3,7 @@
- Install packages:
```
sudo pacman -S fd fzf neovim neovim-qt xclip xxhash
sudo pacman -S fd fzf neovim neovim-qt xclip xxhash wl-clipboard
```
- `mkdir ~/.config/nvim`
+17
View File
@@ -12,6 +12,12 @@ require('fzf-lua').setup({
vertical = 'down:50%',
},
},
keymap = {
fzf = {
["tab"] = "down",
["shift-tab"] = "up",
},
},
})
-- Show titlestring in GUI window title
@@ -102,3 +108,14 @@ vim.api.nvim_create_autocmd({ "FocusGained", "BufEnter" }, {
})
vim.filetype.add({filename = {["Rsconscript"] = "ruby"}})
-- Treat *.rs.erb files as eruby with an embedded Rust subtype
vim.filetype.add({
pattern = {
[".*%.rs%.erb"] = function(_, bufnr)
return "eruby", function()
vim.b[bufnr].eruby_subtype = "rust"
end
end,
},
})
+16 -2
View File
@@ -20,18 +20,32 @@ exe "syn include @propaneTarget syntax/".b:propane_subtype.".vim"
syn region propaneTarget matchgroup=propaneDelimiter start="<<" end=">>$" contains=@propaneTarget keepend
syn match propaneComment "#.*"
syn match propaneOperator "->"
syn match propaneFieldAlias ":[a-zA-Z0-9_]\+" contains=propaneFieldOperator
syn match propaneFieldOperator ":" contained
syn match propaneOperator "?"
syn keyword propaneKeyword context_user_fields drop free_token_node lex_fn module noline on_token_node prefix ptype start token token_user_fields tokenid tree tree_prefix tree_suffix
" The right-hand side of a rule (after '->' up to '<<' or ';') lists symbol
" names that may coincide with propane keywords (e.g. 'start', 'token',
" 'tree'). Wrap it in a region that excludes keyword matches so those names
" are not highlighted as keywords. The '<<' is left unconsumed so the
" propaneTarget region can still match it.
syn region propaneRuleRhs matchgroup=propaneOperator start="->" end="\ze<<" end=";" contains=propaneFieldAlias,propaneRuleOperator,propaneComment keepend
syn match propaneRuleOperator "?" contained
" Keywords that introduce a user-defined name. The name is consumed by
" propaneName via nextgroup so a name matching a keyword (e.g. 'token start')
" is not highlighted as a keyword. These must be a match (not syn keyword)
" because a syn keyword always wins over a contained nextgroup match.
syn match propaneNameDecl "\<\%(tokenid\|token\|lex_fn\|module\|start\|tree_prefix\|tree_suffix\)\>" nextgroup=propaneName skipwhite
syn match propaneName "\<\h\w*\>" contained
syn match propaneKeyword "\<\%(context_user_fields\|drop\|free_token_node\|noline\|on_token_node\|prefix\|ptype\|token_user_fields\|tree\)\>"
syn region propaneRegex start="/" end="/" skip="\v\\\\|\\/"
hi def link propaneComment Comment
hi def link propaneKeyword Keyword
hi def link propaneNameDecl Keyword
hi def link propaneRegex String
hi def link propaneOperator Operator
hi def link propaneRuleOperator Operator
hi def link propaneFieldOperator Operator
hi def link propaneDelimiter Delimiter
hi def link propaneFieldAlias Identifier