@@ -600,6 +600,19 @@ require('lazy').setup({
600
600
601
601
-- See `:help telescope.builtin`
602
602
local builtin = require ' telescope.builtin'
603
+ local pickers = require ' telescope.pickers'
604
+ local finders = require ' telescope.finders'
605
+ local conf = require (' telescope.config' ).values
606
+ local actions = require ' telescope.actions'
607
+ local action_state = require ' telescope.actions.state'
608
+ local previewers = require ' telescope.previewers'
609
+ -- print(vim.inspect(conf.file_sorter))
610
+ -- local old_score_fn = conf.file_sorter.scoring_function
611
+ -- conf.file_sorter.scoring_function = function(self, prompt, line)
612
+ -- print('score', prompt, line)
613
+ -- -- return old_score_fn(self, prompt, line)
614
+ -- return -1
615
+ -- end
603
616
vim .keymap .set (' n' , ' <leader>sh' , builtin .help_tags , { desc = ' [S]earch [H]elp' })
604
617
vim .keymap .set (' n' , ' <leader>sk' , builtin .keymaps , { desc = ' [S]earch [K]eymaps' })
605
618
vim .keymap .set (' n' , ' <leader>sf' , builtin .find_files , { desc = ' [S]earch [F]iles' })
@@ -651,11 +664,6 @@ require('lazy').setup({
651
664
end
652
665
-- our picker ffunction: colors
653
666
local colors = function (opts )
654
- local pickers = require ' telescope.pickers'
655
- local finders = require ' telescope.finders'
656
- local conf = require (' telescope.config' ).values
657
- local actions = require ' telescope.actions'
658
- local action_state = require ' telescope.actions.state'
659
667
opts = opts or {}
660
668
pickers
661
669
.new (opts , {
@@ -691,6 +699,34 @@ require('lazy').setup({
691
699
colors ()
692
700
end , { desc = ' [S]earch [G]rep directory' })
693
701
702
+ local utils = require ' telescope.utils'
703
+ vim .keymap .set (' n' , ' <leader>dd' , function ()
704
+ local opts = {
705
+ entry_maker = function (entry )
706
+ return {
707
+ value = entry ,
708
+ display = entry ,
709
+ ordinal = entry ,
710
+ }
711
+ end ,
712
+ }
713
+ opts .cwd = opts .cwd and utils .path_expand (opts .cwd ) or vim .loop .cwd ()
714
+
715
+ local live_grepper = finders .new_job (function (prompt )
716
+ local term = prompt == ' ' and ' .' or prompt
717
+ local git_cmd = utils .__git_command { ' diff-index' , ' -U0' , ' --name-only' , ' -G' , term , ' HEAD' }
718
+ return git_cmd
719
+ end , opts .entry_maker , opts .max_results , opts .cwd )
720
+
721
+ pickers
722
+ .new (opts , {
723
+ prompt_title = ' grep git diff' ,
724
+ finder = live_grepper ,
725
+ previewer = previewers .git_file_diff .new (opts ),
726
+ })
727
+ :find ()
728
+ end , { desc = ' grep git diff' })
729
+
694
730
-- vim.keymap.set('n', '<leader>gd', function()
695
731
-- local out = vim.system({ 'git', 'status', '-s' }):wait()
696
732
-- print(vim.inspect(out.stdout))
0 commit comments