Feat: Add filetypes builtin (#263)

This commit is contained in:
Simon Hauser
2020-11-19 18:59:44 +01:00
committed by GitHub
parent 319e8ed892
commit 929a30378c
2 changed files with 25 additions and 2 deletions

View File

@@ -373,6 +373,7 @@ Built-in function ready to be bound to any key you like :smile:.
| `builtin.reloader` | Lists lua modules and reload them on enter | | `builtin.reloader` | Lists lua modules and reload them on enter |
| `builtin.vim_options` | Lists vim options and on enter edit the options value | | `builtin.vim_options` | Lists vim options and on enter edit the options value |
| `builtin.keymaps` | Lists normal-mode mappings | | `builtin.keymaps` | Lists normal-mode mappings |
| `builtin.filetypes | Lists all filetypes |
| `builtin.git_commits` | Lists git commits with diff preview and on enter checkout the commit.| | `builtin.git_commits` | Lists git commits with diff preview and on enter checkout the commit.|
| `builtin.git_bcommits` | Lists buffer's git commits with diff preview and | `builtin.git_bcommits` | Lists buffer's git commits with diff preview and
checkouts it out on enter| checkouts it out on enter|

View File

@@ -888,6 +888,28 @@ builtin.keymaps = function(opts)
}):find() }):find()
end end
builtin.filetypes = function(opts)
opts = opts or {}
local filetypes = vim.fn.getcompletion('', 'filetype')
pickers.new({}, {
prompt_title = 'Filetypes',
finder = finders.new_table {
results = filetypes,
},
sorter = conf.generic_sorter(),
attach_mappings = function(prompt_bufnr)
actions.goto_file_selection_edit:replace(function()
local selection = actions.get_selected_entry()
actions.close(prompt_bufnr)
vim.cmd('setfiletype ' .. selection[1])
end)
return true
end
}):find()
end
builtin.tags = function(opts) builtin.tags = function(opts)
opts = opts or {} opts = opts or {}
@@ -913,10 +935,10 @@ builtin.tags = function(opts)
}, },
previewer = previewers.ctags.new(opts), previewer = previewers.ctags.new(opts),
sorter = conf.generic_sorter(opts), sorter = conf.generic_sorter(opts),
attach_mappings = function(prompt_bufnr) attach_mappings = function()
actions._goto_file_selection:enhance { actions._goto_file_selection:enhance {
post = function() post = function()
local selection = actions.get_selected_entry(prompt_bufnr) local selection = actions.get_selected_entry()
local scode = string.gsub(selection.scode, '[$]$', '') local scode = string.gsub(selection.scode, '[$]$', '')
scode = string.gsub(scode, [[\\]], [[\]]) scode = string.gsub(scode, [[\\]], [[\]])