Compare commits

..

5 Commits

2 changed files with 35 additions and 5 deletions

View File

@ -19,7 +19,7 @@ return {
-- Disable "format_on_save lsp_fallback" for languages that don't -- Disable "format_on_save lsp_fallback" for languages that don't
-- have a well standardized coding style. You can add additional -- have a well standardized coding style. You can add additional
-- languages here or re-enable it for the disabled ones. -- languages here or re-enable it for the disabled ones.
local disable_filetypes = { c = true, cpp = true, php = true } local disable_filetypes = { c = true, cpp = true, php = true, html = true }
local lsp_format_opt local lsp_format_opt
if disable_filetypes[vim.bo[bufnr].filetype] then if disable_filetypes[vim.bo[bufnr].filetype] then
lsp_format_opt = 'never' lsp_format_opt = 'never'

View File

@ -204,6 +204,31 @@ return {
local utils = require 'telescope.utils' local utils = require 'telescope.utils'
local action_state = require 'telescope.actions.state' local action_state = require 'telescope.actions.state'
-- Reference: https://github.com/nvim-telescope/telescope.nvim/blob/master/lua/telescope/actions/init.lua#L587
local function git_apply_stash(prompt_bufnr)
local selection = action_state.get_selected_entry()
if selection == nil then
utils.__warn_no_selection 'actions.git_apply_stash'
return
end
actions.close(prompt_bufnr)
-- Remove unwanted '--index' flag from command
local _, ret, stderr = utils.get_os_command_output { 'git', 'stash', 'apply', selection.value }
if ret == 0 then
utils.notify('actions.git_apply_stash', {
msg = string.format("applied: '%s' ", selection.value),
level = 'INFO',
})
else
utils.notify('actions.git_apply_stash', {
---@diagnostic disable-next-line: param-type-mismatch
msg = string.format("Error when applying: %s. Git returned: '%s'", selection.value, table.concat(stderr, ' ')),
level = 'ERROR',
})
end
end
actions.select_default:replace(git_apply_stash)
-- custom function to match stash index inside curly brackets -- custom function to match stash index inside curly brackets
local function match_bracket(str, arr) local function match_bracket(str, arr)
string.gsub(str, '{(.-)}', function(match) string.gsub(str, '{(.-)}', function(match)
@ -214,7 +239,7 @@ return {
end) end)
end end
map({ 'n', 'i' }, '<C-d>', function(prompt_bufnr) local function git_drop_stash(prompt_bufnr)
local picker = action_state.get_current_picker(prompt_bufnr) local picker = action_state.get_current_picker(prompt_bufnr)
local selection = picker:get_multi_selection() local selection = picker:get_multi_selection()
@ -228,8 +253,12 @@ return {
-- scan single selected entry -- scan single selected entry
local entry = action_state.get_selected_entry() local entry = action_state.get_selected_entry()
if entry == nil and #stashes == 0 then if entry == nil and #stashes == 0 then
-- reference: https://github.com/nvim-telescope/telescope.nvim/blob/master/lua/telescope/actions/init.lua#L589 vim.notify(
utils.__warn_no_selection 'actions.git_apply_stash' ---@diagnostic disable-next-line: param-type-mismatch
string.format('WARN [%s]: Nothing currently selected', 'git_drop_stash'),
vim.log.levels.WARN,
{ title = 'telescope.nvim' }
)
return return
end end
match_bracket(entry.value, stashes) match_bracket(entry.value, stashes)
@ -258,7 +287,8 @@ return {
-- refresh picker -- refresh picker
actions.close(prompt_bufnr) actions.close(prompt_bufnr)
vim.schedule(git_stash_mappings) vim.schedule(git_stash_mappings)
end, { desc = 'git_drop_stash' }) end
map({ 'n', 'i' }, '<C-S-d>', git_drop_stash)
return true return true
end, end,
} }