Skip to content

Commit

Permalink
WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
ibhagwan committed Dec 11, 2024
1 parent b7e4d47 commit e9e1acc
Show file tree
Hide file tree
Showing 10 changed files with 266 additions and 163 deletions.
20 changes: 16 additions & 4 deletions OPTIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -554,25 +554,37 @@ Interactive headers description highlight group, e.g. `<ctrl-g> to Disable .giti

Type: `string`, Default: `FzfLuaPathLineNr`

Highlight group for the line part of paths, e.g. `file:<line>:<col>:`, used in pickers such as `buffers`, `lines`, `quickfix`, `lsp`, `diagnostics`, etc.
Highlight group for the line part of paths, e.g. `file:<line>:<col>:`, used in pickers such as `buffers`, `quickfix`, `lsp`, `diagnostics`, etc.

#### globals.hls.path_colnr

Type: `string`, Default: `FzfLuaPathColNr`

Highlight group for the column part of paths, e.g. `file:<line>:<col>:`, used in pickers such as `buffers`, `lines`, `quickfix`, `lsp`, `diagnostics`, etc.
Highlight group for the column part of paths, e.g. `file:<line>:<col>:`, used in pickers such as `buffers`, `quickfix`, `lsp`, `diagnostics`, etc.

#### globals.hls.buf_name

Type: `string`, Default: `FzfLuaBufName`

Highlight group for buffer name in `lines`.
Highlight group for buffer name (filepath) in `lines`.

#### globals.hls.buf_id

Type: `string`, Default: `FzfLuaBufId`

Highlight group for buffer id (number) in `lines`.

#### globals.hls.buf_nr

Type: `string`, Default: `FzfLuaBufNr`

Highlight group for buffer number in buffer type pickers, i.e. `buffers`, `tabs`, `lines`.
Highlight group for buffer number in `buffers`, `tabs`.

#### globals.hls.buf_linenr

Type: `string`, Default: `FzfLuaBufLineNr`

Highlight group for buffer line number in `lines`, `blines` and `treesitter`.

#### globals.hls.buf_flag_cur

Expand Down
51 changes: 16 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -585,6 +585,14 @@ require'fzf-lua'.setup {
-- title = "Title",
-- title_pos = "center", -- 'left', 'center' or 'right'
fullscreen = false, -- start fullscreen?
-- enable treesitter highlighting for the main fzf window will only have
-- effect when grep like results are present, i.e. "file:line:col:text"
-- due to highlight color collisions will also override `fzf_colors`
-- set `fzf_colors=false` or `fzf_colors.hl=...` to override
treesitter = {
enable = false,
fzf_colors = { ["hl"] = "-1:reverse", ["hl+"] = "-1:reverse" }
},
preview = {
-- default = 'bat', -- override the default previewer?
-- default uses the 'builtin' previewer
Expand Down Expand Up @@ -1106,45 +1114,16 @@ require'fzf-lua'.setup {
["--with-nth"] = '2..',
},
},
-- `blines` has the same defaults as `lines` aside from prompt and `show_bufname`
lines = {
previewer = "builtin", -- set to 'false' to disable
prompt = 'Lines❯ ',
show_bufname = true, -- display buffer name
show_unloaded = true, -- show unloaded buffers
show_unlisted = false, -- exclude 'help' buffers
no_term_buffers = true, -- exclude 'term' buffers
fzf_opts = {
-- do not include bufnr in fuzzy matching
-- tiebreak by line no.
["--delimiter"] = "[\\]:]",
["--nth"] = '2..',
["--tiebreak"] = 'index',
["--tabstop"] = "1",
},
-- actions inherit from 'actions.files' and merge
actions = {
["enter"] = actions.buf_edit_or_qf,
["alt-q"] = actions.buf_sel_to_qf,
["alt-l"] = actions.buf_sel_to_ll
},
},
blines = {
previewer = "builtin", -- set to 'false' to disable
prompt = 'BLines❯ ',
show_unlisted = true, -- include 'help' buffers
no_term_buffers = false, -- include 'term' buffers
-- start = "cursor" -- start display from cursor?
fzf_opts = {
-- hide filename, tiebreak by line no.
["--delimiter"] = "[:]",
["--with-nth"] = '2..',
["--tiebreak"] = 'index',
["--tabstop"] = "1",
},
-- actions inherit from 'actions.files' and merge
actions = {
["enter"] = actions.buf_edit_or_qf,
["alt-q"] = actions.buf_sel_to_qf,
["alt-l"] = actions.buf_sel_to_ll
},
},
tags = {
Expand Down Expand Up @@ -1418,10 +1397,12 @@ temporarily overridden by its corresponding `winopts` option:
|FzfLuaHelpBorder |FzfLuaBorder |`hls.help_border` |Help win border|
|FzfLuaHeaderBind |*BlanchedAlmond |`hls.header_bind` |Header keybind|
|FzfLuaHeaderText |*Brown1 |`hls.header_text` |Header text|
|FzfLuaPathColNr |*CadetBlue1 |`hls.path_colnr` |Path col nr (`lines,qf,lsp,diag`)|
|FzfLuaPathLineNr |*LightGreen |`hls.path_linenr` |Path line nr (`lines,qf,lsp,diag`)|
|FzfLuaBufName |*LightMagenta |`hls.buf_name` |Buffer name (`lines`)|
|FzfLuaBufNr |*BlanchedAlmond |`hls.buf_nr` |Buffer number (all buffers)|
|FzfLuaPathColNr |*CadetBlue1 |`hls.path_colnr` |Path col nr (`qf,lsp,diag`)|
|FzfLuaPathLineNr |*LightGreen |`hls.path_linenr` |Path line nr (`qf,lsp,diag`)|
|FzfLuaBufName |Directory |`hls.buf_name` |Buffer name (`lines`)|
|FzfLuaBufId |TabLine |`hls.buf_id` |Buffer ID (`lines`)|
|FzfLuaBufNr |*BlanchedAlmond |`hls.buf_nr` |Buffer number (`buffers,tabs`)|
|FzfLuaBufLineNr |LineNr |`hls.buf_linenr` |Buffer line nr (`lines,blines`)|
|FzfLuaBufFlagCur |*Brown1 |`hls.buf_flag_cur` |Buffer line (`buffers`)|
|FzfLuaBufFlagAlt |*CadetBlue1 |`hls.buf_flag_alt` |Buffer line (`buffers`)|
|FzfLuaTabTitle |*LightSkyBlue1 |`hls.tab_title` |Tab title (`tabs`)|
Expand Down
27 changes: 21 additions & 6 deletions doc/fzf-lua-opts.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
*fzf-lua-opts.txt* For Neovim >= 0.8.0 Last change: 2024 November 18
*fzf-lua-opts.txt* For Neovim >= 0.8.0 Last change: 2024 December 10

==============================================================================
Table of Contents *fzf-lua-opts-table-of-contents*
Expand Down Expand Up @@ -736,7 +736,7 @@ globals.hls.path_linenr *fzf-lua-opts-globals.hls.path_linenr*
Type: `string`, Default: `FzfLuaPathLineNr`

Highlight group for the line part of paths, e.g. `file:<line>:<col>:`, used in
pickers such as `buffers`, `lines`, `quickfix`, `lsp`, `diagnostics`, etc.
pickers such as `buffers`, `quickfix`, `lsp`, `diagnostics`, etc.



Expand All @@ -745,24 +745,39 @@ globals.hls.path_colnr *fzf-lua-opts-globals.hls.path_colnr*
Type: `string`, Default: `FzfLuaPathColNr`

Highlight group for the column part of paths, e.g. `file:<line>:<col>:`, used
in pickers such as `buffers`, `lines`, `quickfix`, `lsp`, `diagnostics`, etc.
in pickers such as `buffers`, `quickfix`, `lsp`, `diagnostics`, etc.



globals.hls.buf_name *fzf-lua-opts-globals.hls.buf_name*

Type: `string`, Default: `FzfLuaBufName`

Highlight group for buffer name in `lines`.
Highlight group for buffer name (filepath) in `lines`.



globals.hls.buf_id *fzf-lua-opts-globals.hls.buf_id*

Type: `string`, Default: `FzfLuaBufId`

Highlight group for buffer id (number) in `lines`.



globals.hls.buf_nr *fzf-lua-opts-globals.hls.buf_nr*

Type: `string`, Default: `FzfLuaBufNr`

Highlight group for buffer number in buffer type pickers, i.e. `buffers`,
`tabs`, `lines`.
Highlight group for buffer number in `buffers`, `tabs`.



globals.hls.buf_linenr *fzf-lua-opts-globals.hls.buf_linenr*

Type: `string`, Default: `FzfLuaBufLineNr`

Highlight group for buffer line number in `lines`, `blines` and `treesitter`.



Expand Down
18 changes: 18 additions & 0 deletions lua/fzf-lua/config.lua
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,24 @@ function M.normalize_opts(opts, globals, __resume_key)
type(M.globals[k]) == "table" and utils.tbl_deep_clone(M.globals[k]) or {})
end

-- Adjust main fzf window treesitter settings
-- Set to `true`, will copy the defaults and add `enable=true`
-- Set to a table `enable=true` is assumed (i.e. `nil` equals `true`)
if opts.winopts.treesitter == true then
opts.winopts.treesitter = vim.tbl_deep_extend("force",
M.defaults.winopts.treesitter, { enable = true })
end
-- Unless the caller specifically disables fuzzy matching colors will be
-- set to `reverse` which sets the background color for matches instead
-- NOTE: default `fzf_colors` are set in `defaults.winopts.treesitter`
if type(opts.winopts.treesitter) == "table"
and opts.winopts.treesitter.enable ~= false
and type(opts.winopts.treesitter.fzf_colors) == "table" then
opts.fzf_colors = vim.tbl_deep_extend("force",
opts.fzf_colors or {}, opts.winopts.treesitter.fzf_colors)
end
-- _G.dump(opts.winopts.treesitter, opts.fzf_colors)

-- backward compat: no-value flags should be set to `true`, in the past these
-- would be set to an empty string which would now translate into a shell escaped
-- string as we automatically shell escape all fzf_opts
Expand Down
88 changes: 53 additions & 35 deletions lua/fzf-lua/defaults.lua
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,11 @@ M.defaults = {
zindex = 50,
backdrop = 60,
fullscreen = false,
treesitter = {
enable = false,
-- fzf_colors = { ["hl"] = "-1:reverse", ["hl+"] = "-1:reverse" }
fzf_colors = { ["hl"] = "reverse:underline", ["hl+"] = "reverse:underline" }
},
preview = {
default = "builtin",
border = "border",
Expand Down Expand Up @@ -507,6 +512,17 @@ M.defaults.grep = {
glob_separator = "%s%-%-", -- query separator pattern (lua): ' --'
}

M.defaults.grep_curbuf = vim.tbl_deep_extend("force", M.defaults.grep, {
prompt = "RgBuffer> ",
rg_glob = false, -- meaningless for single file rg
exec_empty_query = true, -- makes sense to display lines immediately
fzf_opts = {
["--delimiter"] = "[:]",
["--with-nth"] = "2..",
["--nth"] = "2..",
},
})

M.defaults.args = {
previewer = M._default_previewer_fn,
prompt = "Args> ",
Expand Down Expand Up @@ -620,55 +636,54 @@ M.defaults.lines = {
prompt = "Lines> ",
file_icons = true and M._has_devicons,
color_icons = true,
-- show_bufname = 120,
show_bufname = 0,
show_unloaded = true,
show_unlisted = false,
no_term_buffers = true,
sort_lastused = true,
fzf_opts = {
["--multi"] = true,
["--delimiter"] = "[\\]:]",
["--nth"] = "2..",
["--delimiter"] = "[\t]",
["--tabstop"] = "1",
["--tiebreak"] = "index",
["--with-nth"] = "2..",
["--nth"] = "4..",
},
line_field_index = "{4}",
field_index_expr = "{}", -- For `_fmt.from` to work with `bat_native`
_cached_hls = { "buf_id", "buf_name", "buf_linenr" },
_fmt = {
-- NOTE: `to` is not needed, we format at the source in `buffer_lines`
to = false,
from = function(s, _)
-- restore the format to something that `path.entry_to_file` can handle
local bufnr, lnum, text = s:match("%[(%d+)%].-(%d+) (.+)$")
if not bufnr then return "" end
return string.format("[%s]%s%s:%s:%s",
bufnr, utils.nbsp,
path.tail(vim.api.nvim_buf_get_name(tonumber(bufnr))),
lnum, text)
end
},
line_field_index = "{3}",
_actions = function()
return M.globals.actions.buffers or M.globals.actions.files
end,
actions = {
["enter"] = actions.buf_edit_or_qf,
["alt-q"] = actions.buf_sel_to_qf,
["alt-l"] = actions.buf_sel_to_ll
},
_cached_hls = { "buf_name", "buf_nr", "path_linenr" },
}

M.defaults.blines = {
previewer = M._default_previewer_fn,
prompt = "BLines> ",
file_icons = false,
color_icons = false,
show_unlisted = true,
no_term_buffers = false,
fzf_opts = {
["--multi"] = true,
["--delimiter"] = "[:]",
["--with-nth"] = "2..",
["--tiebreak"] = "index",
},
line_field_index = "{2}",
_actions = function()
return M.globals.actions.buffers or M.globals.actions.files
end,
actions = {
["enter"] = actions.buf_edit_or_qf,
["alt-q"] = actions.buf_sel_to_qf,
["alt-l"] = actions.buf_sel_to_ll
M.defaults.blines = vim.tbl_deep_extend("force", M.defaults.lines, {
prompt = "BLines> ",
show_bufname = false,
fzf_opts = {
["--with-nth"] = "4..",
["--nth"] = "2..",
},
_cached_hls = { "buf_name", "buf_nr", "path_linenr" },
}
})

M.defaults.treesitter = {
previewer = M._default_previewer_fn,
prompt = "Treesitter> ",
show_bufname = false,
file_icons = false,
color_icons = false,
fzf_opts = {
Expand Down Expand Up @@ -735,9 +750,10 @@ M.defaults.colorschemes = {
}

M.defaults.highlights = {
prompt = "Highlights> ",
fzf_opts = { ["--no-multi"] = true },
previewer = { _ctor = previewers.builtin.highlights, },
prompt = "Highlights> ",
fzf_opts = { ["--no-multi"] = true },
fzf_colors = { ["hl"] = "-1:reverse", ["hl+"] = "-1:reverse" },
previewer = { _ctor = previewers.builtin.highlights, },
}

M.defaults.awesome_colorschemes = {
Expand Down Expand Up @@ -1189,7 +1205,9 @@ M.defaults.__HLS = {
path_colnr = "FzfLuaPathColNr",
path_linenr = "FzfLuaPathLineNr",
buf_name = "FzfLuaBufName",
buf_id = "FzfLuaBufId",
buf_nr = "FzfLuaBufNr",
buf_linenr = "FzfLuaBufLineNr",
buf_flag_cur = "FzfLuaBufFlagCur",
buf_flag_alt = "FzfLuaBufFlagAlt",
tab_title = "FzfLuaTabTitle",
Expand Down
24 changes: 13 additions & 11 deletions lua/fzf-lua/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -81,24 +81,26 @@ function M.setup_highlights(override)
{ default = default, fg = is_light and "MediumSpringGreen" or "BlanchedAlmond" } },
{ "FzfLuaHeaderText", "header_text",
{ default = default, fg = is_light and "Brown4" or "Brown1" } },
{ "FzfLuaPathColNr", "path_colnr", -- lines|blines|qf|diag|lsp
{ "FzfLuaPathColNr", "path_colnr", -- qf|diag|lsp
{ default = default, fg = is_light and "CadetBlue4" or "CadetBlue1" } },
{ "FzfLuaPathLineNr", "path_linenr", -- lines|blines|qf|diag|lsp
{ "FzfLuaPathLineNr", "path_linenr", -- qf|diag|lsp
{ default = default, fg = is_light and "MediumSpringGreen" or "LightGreen" } },
{ "FzfLuaLiveSym", "live_sym",
{ "FzfLuaLiveSym", "live_sym", -- lsp_live_workspace_symbols query
{ default = default, fg = is_light and "Brown4" or "Brown1" } },
-- Provider specific highlights
{ "FzfLuaBufName", "buf_name", -- lines|blines (hidden)
{ default = default, fg = is_light and "DarkOrchid3" or "LightMagenta" } },
{ "FzfLuaBufNr", "buf_nr", -- buffers|tabs|lines|blines
-- lines|blines|treesitter
{ "FzfLuaBufId", "buf_id", { default = default, link = "TabLine" } },
{ "FzfLuaBufName", "buf_name", { default = default, link = "Directory" } },
{ "FzfLuaBufLineNr", "buf_linenr", { default = default, link = "LineNr" } },
-- buffers|tabs
{ "FzfLuaBufNr", "buf_nr",
{ default = default, fg = is_light and "AquaMarine3" or "BlanchedAlmond" } },
{ "FzfLuaBufFlagCur", "buf_flag_cur", -- buffers|tabs
{ "FzfLuaBufFlagCur", "buf_flag_cur",
{ default = default, fg = is_light and "Brown4" or "Brown1" } },
{ "FzfLuaBufFlagAlt", "buf_flag_alt", -- buffers|tabs
{ "FzfLuaBufFlagAlt", "buf_flag_alt",
{ default = default, fg = is_light and "CadetBlue4" or "CadetBlue1" } },
{ "FzfLuaTabTitle", "tab_title", -- tabs
{ "FzfLuaTabTitle", "tab_title", -- tabs only
{ default = default, fg = is_light and "CadetBlue4" or "LightSkyBlue1", bold = true } },
{ "FzfLuaTabMarker", "tab_marker", -- tabs
{ "FzfLuaTabMarker", "tab_marker", -- tabs only
{ default = default, fg = is_light and "MediumSpringGreen" or "BlanchedAlmond", bold = true } },
-- highlight groups for `fzf_colors=true`
{ "FzfLuaFzfNormal", "fzf.normal", { default = default, link = "FzfLuaNormal" } },
Expand Down
2 changes: 2 additions & 0 deletions lua/fzf-lua/profiles/fzf-tmux.lua
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,6 @@ return {
lsp = { code_actions = { previewer = "codeaction_native" } },
tags = { previewer = "bat" },
btags = { previewer = "bat" },
lines = { ["winopts.treesitter"] = false },
blines = { ["winopts.treesitter"] = false },
}
Loading

0 comments on commit e9e1acc

Please sign in to comment.