Update search and helm filetype config
This commit is contained in:
@@ -1,11 +1,26 @@
|
|||||||
|
local function has_ancestor_file(path, filename)
|
||||||
|
local dir = vim.fs.dirname(path)
|
||||||
|
while dir and dir ~= '' do
|
||||||
|
if vim.uv.fs_stat(vim.fs.joinpath(dir, filename)) then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
local parent = vim.fs.dirname(dir)
|
||||||
|
if not parent or parent == dir then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
dir = parent
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
vim.filetype.add({
|
vim.filetype.add({
|
||||||
pattern = {
|
pattern = {
|
||||||
['.*/templates/.*%.ya?ml'] = 'helm',
|
['.*/templates/.*%.ya?ml'] = function(path)
|
||||||
['.*/manifests/.*%.ya?ml'] = 'helm',
|
if has_ancestor_file(path, 'Chart.yaml') then
|
||||||
['.*/crds/.*%.ya?ml'] = 'helm',
|
return 'helm'
|
||||||
['.*/kubernetes/.*%.ya?ml'] = 'helm',
|
end
|
||||||
['.*/k8s/.*%.ya?ml'] = 'helm',
|
end,
|
||||||
['.*/charts/.*%.ya?ml'] = 'helm',
|
|
||||||
},
|
},
|
||||||
extension = {
|
extension = {
|
||||||
gotmpl = 'helm',
|
gotmpl = 'helm',
|
||||||
|
|||||||
@@ -6,6 +6,112 @@ require('plugins.filetree')
|
|||||||
-- follow_symlinks = true,
|
-- follow_symlinks = true,
|
||||||
-- })
|
-- })
|
||||||
|
|
||||||
|
local file_fd_opts = table.concat({
|
||||||
|
'--color=never',
|
||||||
|
'--type f',
|
||||||
|
'--type l',
|
||||||
|
'--hidden',
|
||||||
|
'--follow',
|
||||||
|
'--exclude .git',
|
||||||
|
'--exclude .cache',
|
||||||
|
'--exclude .turbo',
|
||||||
|
'--exclude node_modules',
|
||||||
|
'--exclude dist',
|
||||||
|
'--exclude build',
|
||||||
|
'--exclude "*-lock.json"',
|
||||||
|
'--exclude "*-lock.yaml"',
|
||||||
|
}, ' ')
|
||||||
|
|
||||||
|
local file_rg_opts = table.concat({
|
||||||
|
'--color=never',
|
||||||
|
'--files',
|
||||||
|
'--hidden',
|
||||||
|
'--follow',
|
||||||
|
'-g "!.git"',
|
||||||
|
'-g "!.cache"',
|
||||||
|
'-g "!.turbo"',
|
||||||
|
'-g "!node_modules"',
|
||||||
|
'-g "!dist"',
|
||||||
|
'-g "!build"',
|
||||||
|
'-g "!*-lock.json"',
|
||||||
|
'-g "!*-lock.yaml"',
|
||||||
|
}, ' ')
|
||||||
|
|
||||||
|
local function grep_rg_opts(extra)
|
||||||
|
local opts = {
|
||||||
|
'--column',
|
||||||
|
'--line-number',
|
||||||
|
'--no-heading',
|
||||||
|
'--color=always',
|
||||||
|
'--colors "path:none"',
|
||||||
|
'--colors "line:none"',
|
||||||
|
'--colors "column:none"',
|
||||||
|
'--colors "match:fg:166"',
|
||||||
|
'--colors "match:style:bold"',
|
||||||
|
'--smart-case',
|
||||||
|
'--max-columns=4096',
|
||||||
|
'--hidden',
|
||||||
|
'--follow',
|
||||||
|
'--glob "!.git"',
|
||||||
|
'--glob "!.cache"',
|
||||||
|
'--glob "!.turbo"',
|
||||||
|
'--glob "!node_modules"',
|
||||||
|
'--glob "!dist"',
|
||||||
|
'--glob "!build"',
|
||||||
|
'--glob "!*-lock.json"',
|
||||||
|
'--glob "!*-lock.yaml"',
|
||||||
|
}
|
||||||
|
|
||||||
|
vim.list_extend(opts, extra or {})
|
||||||
|
table.insert(opts, '-e')
|
||||||
|
|
||||||
|
return table.concat(opts, ' ')
|
||||||
|
end
|
||||||
|
|
||||||
|
local function uniq_filter()
|
||||||
|
return [[awk '!seen[$0]++']]
|
||||||
|
end
|
||||||
|
|
||||||
|
local function files_cmd()
|
||||||
|
local fd = vim.fn.executable('fdfind') == 1 and 'fdfind' or vim.fn.executable('fd') == 1 and 'fd' or nil
|
||||||
|
if fd then
|
||||||
|
return table.concat({
|
||||||
|
'(',
|
||||||
|
fd .. ' ' .. file_fd_opts .. ' .;',
|
||||||
|
fd .. ' ' .. file_fd_opts .. ' --no-ignore --glob ".env*" .;',
|
||||||
|
'if [ -d _artifacts ]; then ' .. fd .. ' ' .. file_fd_opts .. ' --no-ignore . _artifacts; fi',
|
||||||
|
') | ' .. uniq_filter(),
|
||||||
|
}, ' ')
|
||||||
|
end
|
||||||
|
|
||||||
|
if vim.fn.executable('rg') == 1 then
|
||||||
|
return table.concat({
|
||||||
|
'(',
|
||||||
|
'rg ' .. file_rg_opts .. ' .;',
|
||||||
|
'rg ' .. file_rg_opts .. ' --no-ignore --glob ".env*" .;',
|
||||||
|
'if [ -d _artifacts ]; then rg ' .. file_rg_opts .. ' --no-ignore _artifacts; fi',
|
||||||
|
') | ' .. uniq_filter(),
|
||||||
|
}, ' ')
|
||||||
|
end
|
||||||
|
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
|
local function grep_cmd(query)
|
||||||
|
local query_arg = query == '<query>' and query or vim.fn.shellescape(query or '')
|
||||||
|
local normal_rg = 'rg ' .. grep_rg_opts()
|
||||||
|
local ignored_rg = 'rg ' .. grep_rg_opts({ '--no-ignore' })
|
||||||
|
local env_rg = 'rg ' .. grep_rg_opts({ '--no-ignore', '--glob ".env*"' })
|
||||||
|
|
||||||
|
return table.concat({
|
||||||
|
'(',
|
||||||
|
normal_rg .. ' ' .. query_arg .. ' .;',
|
||||||
|
env_rg .. ' ' .. query_arg .. ' .;',
|
||||||
|
'if [ -d _artifacts ]; then ' .. ignored_rg .. ' ' .. query_arg .. ' _artifacts; fi',
|
||||||
|
') | ' .. uniq_filter(),
|
||||||
|
}, ' '), query
|
||||||
|
end
|
||||||
|
|
||||||
require('fzf-lua').setup({
|
require('fzf-lua').setup({
|
||||||
fzf_colors = {
|
fzf_colors = {
|
||||||
['fg'] = { 'fg', 'PickerNormal' },
|
['fg'] = { 'fg', 'PickerNormal' },
|
||||||
@@ -56,62 +162,13 @@ require('fzf-lua').setup({
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
files = {
|
files = {
|
||||||
follow = true,
|
cmd = files_cmd(),
|
||||||
fd_opts = table.concat({
|
fd_opts = file_fd_opts,
|
||||||
'--color=never',
|
rg_opts = file_rg_opts,
|
||||||
'--type f',
|
|
||||||
'--type l',
|
|
||||||
'--hidden',
|
|
||||||
'--follow',
|
|
||||||
'--exclude .git',
|
|
||||||
'--exclude .cache',
|
|
||||||
'--exclude .turbo',
|
|
||||||
'--exclude node_modules',
|
|
||||||
'--exclude dist',
|
|
||||||
'--exclude build',
|
|
||||||
'--exclude "*-lock.json"',
|
|
||||||
'--exclude "*-lock.yaml"',
|
|
||||||
}, ' '),
|
|
||||||
rg_opts = table.concat({
|
|
||||||
'--color=never',
|
|
||||||
'--files',
|
|
||||||
'--hidden',
|
|
||||||
'--follow',
|
|
||||||
'-g "!.git"',
|
|
||||||
'-g "!.cache"',
|
|
||||||
'-g "!.turbo"',
|
|
||||||
'-g "!node_modules"',
|
|
||||||
'-g "!dist"',
|
|
||||||
'-g "!build"',
|
|
||||||
'-g "!*-lock.json"',
|
|
||||||
'-g "!*-lock.yaml"',
|
|
||||||
}, ' '),
|
|
||||||
},
|
},
|
||||||
grep = {
|
grep = {
|
||||||
rg_opts = table.concat({
|
rg_opts = grep_rg_opts(),
|
||||||
'--column',
|
fn_transform_cmd = grep_cmd,
|
||||||
'--line-number',
|
|
||||||
'--no-heading',
|
|
||||||
'--color=always',
|
|
||||||
'--colors "path:none"',
|
|
||||||
'--colors "line:none"',
|
|
||||||
'--colors "column:none"',
|
|
||||||
'--colors "match:fg:166"',
|
|
||||||
'--colors "match:style:bold"',
|
|
||||||
'--smart-case',
|
|
||||||
'--max-columns=4096',
|
|
||||||
'--hidden',
|
|
||||||
'--follow',
|
|
||||||
'--glob "!.git"',
|
|
||||||
'--glob "!.cache"',
|
|
||||||
'--glob "!.turbo"',
|
|
||||||
'--glob "!node_modules"',
|
|
||||||
'--glob "!dist"',
|
|
||||||
'--glob "!build"',
|
|
||||||
'--glob "!*-lock.json"',
|
|
||||||
'--glob "!*-lock.yaml"',
|
|
||||||
'-e',
|
|
||||||
}, ' '),
|
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
local fzf = require('fzf-lua')
|
local fzf = require('fzf-lua')
|
||||||
|
|||||||
Reference in New Issue
Block a user