diff options
| -rw-r--r-- | .vim/lua/misc.lua | 39 |
1 files changed, 26 insertions, 13 deletions
diff --git a/.vim/lua/misc.lua b/.vim/lua/misc.lua index 14d5d7a..457aa3c 100644 --- a/.vim/lua/misc.lua +++ b/.vim/lua/misc.lua @@ -72,24 +72,37 @@ function M.sort_line() end end -function M.live_grep(dirs) - if not dirs then vim.ui.input('Dirs: ', function(result) dirs = result end) end +local function get_searchdirs(dirs) + -- skip asking if we're looking at known filetypes + local ft = vim.api.nvim_buf_get_option(0, 'filetype') + if not dirs and (ft == 'dirbuf' or ft == 'alpha') then + dirs = '%:p:h' + end + if not dirs then + vim.ui.input('Search directories: ', function(result) dirs = result end) + end + -- default to something reasonable if not dirs then dirs = '%:p:h' end - require('telescope.builtin').live_grep { - search_dirs=vim.split(dirs, ','), - prompt_title='Live Grep: '.. vim.fn.expand(dirs), - } + return vim.split(vim.fn.expand(dirs), ',') end -function M.find_files(dirs) - if not dirs then vim.ui.input('Dirs: ', function(result) dirs = result end) end - if not dirs then dirs = '%:h:p' end - require('telescope.builtin').find_files { - search_dirs=vim.split(dirs, ','), - prompt_title='Find Files: '.. vim.fn.expand(dirs), - } +function M.live_grep(dirs, opts) + opts = opts or {} + local search_dirs = get_searchdirs(dirs) + opts.search_dirs = search_dirs + opts.prompt_title = 'Grep: '.. vim.inspect(search_dirs) + return require('telescope.builtin').live_grep(opts) end +function M.find_files(dirs, opts) + opts = opts or {} + local search_dirs = get_searchdirs(dirs) + opts.search_dirs = search_dirs + opts.prompt_title = 'Files: '.. vim.inspect(search_dirs) + return require('telescope.builtin').find_files(opts) +end + + function M.fold_block() -- {{{ local Comment = require('Comment.api') local m = vim.api.nvim_buf_get_mark |