From 1cbcabc97b632c0aebd420f2adabb9595964fdec Mon Sep 17 00:00:00 2001 From: Alexander Rosenberg Date: Tue, 7 Feb 2023 12:16:21 -0800 Subject: [PATCH] Halfway done --- fnl/plugin.fnl | 165 +++++++++++++++++++++++++++++++-------------- fnl/plugin/lsp.fnl | 33 ++++++--- 2 files changed, 138 insertions(+), 60 deletions(-) diff --git a/fnl/plugin.fnl b/fnl/plugin.fnl index 3300f9f..9566ec3 100644 --- a/fnl/plugin.fnl +++ b/fnl/plugin.fnl @@ -58,56 +58,121 @@ :show_buffer_close_icons false :show_close_icon false })) - ;; fzf (a fuzzy finder) - (use! :ibhagwan/fzf-lua - :cmd :FzfLua - :setup - (bind! :n :fq "FzfLua quickfix") - (bind! :n :fr "FzfLua registers") - (bind! :n :fj "FzfLua jumps") - (bind! :n :fa "FzfLua marks") - (bind! :n :fh "FzfLua help_tags") - (bind! :n :g "FzfLua live_grep") - (bind! :n :fg "FzfLua live_grep") - (bind! :n :G "FzfLua grep") - (bind! :n :fG "FzfLua grep") - (bind! :n :b "FzfLua buffers") - (bind! :n :gb "FzfLua buffers") - (bind! :n :fu "FzfLua git_status") - (bind! :n :fm "FzfLua man_pages") - (bind! :n :fe "FzfLua diagnostics_document") - (bind! :n :fE "FzfLua diagnostics_workspace") - (bind! :n :d "FzfLua loclist") - (bind! :n :fp "FzfLua spell_suggest") - (bind! :n :i "FzfLua files") - (bind! :n :z= "FzfLua spell_suggest") - (fn list-git-or-default [] - (let [code (os.execute "git rev-parse --is-inside-work-tree >/dev/null 2>&1")] - (if (= code 0) - (vim.cmd "FzfLua git_files") - (vim.cmd "FzfLua files")))) - (bind! :n :ff list-git-or-default) - (bind! :n :u list-git-or-default) - (fn jump-or-open-terminal [] - "If no terminal buffer exists, create one. Otherwise, open new one." - (var term_count 0) - (var last_id 0) - (var terms [ ]) - (each [_ id (pairs (vim.api.nvim_list_bufs))] - (let [name (vim.api.nvim_buf_get_name id)] - (when (vim.startswith name "term://") - (table.insert terms name) - (set term_count (+ term_count 1)) - (set last_id id)))) - (if (= term_count 0) - (vim.cmd.terminal) - (= term_count 1) - (vim.cmd.buffer last_id) - (vim.cmd "FzfLua buffers query=term://"))) - (bind! :n :t jump-or-open-terminal) + ;; telescope (a fuzzy finder) + (use! :nvim-telescope/telescope.nvim + :requires [ :nvim-lua/plenary.nvim ] :config - (let [fzf (require :fzf-lua)] - (fzf.register_ui_select))) + (let [builtin (require :telescope.builtin) + actions (require :telescope.actions)] + (setup! :telescope + :defaults { + :mappings { + :i { : actions.close + : actions.move_selection_previous + : actions.move_selection_next } + :n { : actions.move_selection_previous + : actions.move_selection_next }}} + :pickers { + :buffers { + ;;:ignore_current_buffer true + :sort_lastused true }}) + (bind! :n :fq builtin.quickfix) + (bind! :n :fr builtin.registers) + (bind! :n :fj builtin.jumplist) + (bind! :n :fa builtin.marks) + (bind! :n :fh builtin.help_tags) + (bind! :n :g builtin.live_grep) + (bind! :n :fg builtin.live_grep) + (bind! :n :b builtin.buffers) + (bind! :n :gb builtin.buffers) + (bind! :n :fu builtin.git_status) + (bind! :n :fm builtin.man_pages) + (bind! :n :fe builtin.diagnostics) + (bind! :n :d builtin.loclist) + (bind! :n :fp builtin.spell_suggest) + (bind! :n :i builtin.find_files) + (bind! :n :z= builtin.spell_suggest) + (fn list-git-or-default [] + (let [code (os.execute "git rev-parse --is-inside-work-tree >/dev/null 2>&1")] + (if (= code 0) + (builtin.git_files) + (builtin.find_files)))) + (bind! :n :ff list-git-or-default) + (bind! :n :u list-git-or-default) + (fn jump-or-open-terminal [] + "If no terminal buffer exists, create one. Otherwise, open new one." + (var term_count 0) + (var last_id 0) + (var terms [ ]) + (each [_ id (pairs (vim.api.nvim_list_bufs))] + (let [name (vim.api.nvim_buf_get_name id)] + (when (vim.startswith name "term://") + (table.insert terms name) + (set term_count (+ term_count 1)) + (set last_id id)))) + (if (= term_count 0) + (vim.cmd.terminal) + (= term_count 1) + (vim.cmd.buffer last_id) + (builtin.buffers { :default_text "term://" }))) + (bind! :n :t jump-or-open-terminal))) + + ;; dressing.nvim nicer vim.ui stuff + (use! :stevearc/dressing.nvim + :after :telescope.nvim + :config + (setup! :dressing)) + + ;; fzf (a fuzzy finder) + ;(use! :ibhagwan/fzf-lua + ; :cmd :FzfLua + ; :setup + ; (bind! :n :fq "FzfLua quickfix") + ; (bind! :n :fr "FzfLua registers") + ; (bind! :n :fj "FzfLua jumps") + ; (bind! :n :fa "FzfLua marks") + ; (bind! :n :fh "FzfLua help_tags") + ; (bind! :n :g "FzfLua live_grep") + ; (bind! :n :fg "FzfLua live_grep") + ; (bind! :n :G "FzfLua grep") + ; (bind! :n :fG "FzfLua grep") + ; (bind! :n :b "FzfLua buffers") + ; (bind! :n :gb "FzfLua buffers") + ; (bind! :n :fu "FzfLua git_status") + ; (bind! :n :fm "FzfLua man_pages") + ; (bind! :n :fe "FzfLua diagnostics_document") + ; (bind! :n :fE "FzfLua diagnostics_workspace") + ; (bind! :n :d "FzfLua loclist") + ; (bind! :n :fp "FzfLua spell_suggest") + ; (bind! :n :i "FzfLua files") + ; (bind! :n :z= "FzfLua spell_suggest") + ; (fn list-git-or-default [] + ; (let [code (os.execute "git rev-parse --is-inside-work-tree >/dev/null 2>&1")] + ; (if (= code 0) + ; (vim.cmd "FzfLua git_files") + ; (vim.cmd "FzfLua files")))) + ; (bind! :n :ff list-git-or-default) + ; (bind! :n :u list-git-or-default) + ; (fn jump-or-open-terminal [] + ; "If no terminal buffer exists, create one. Otherwise, open new one." + ; (var term_count 0) + ; (var last_id 0) + ; (var terms [ ]) + ; (each [_ id (pairs (vim.api.nvim_list_bufs))] + ; (let [name (vim.api.nvim_buf_get_name id)] + ; (when (vim.startswith name "term://") + ; (table.insert terms name) + ; (set term_count (+ term_count 1)) + ; (set last_id id)))) + ; (if (= term_count 0) + ; (vim.cmd.terminal) + ; (= term_count 1) + ; (vim.cmd.buffer last_id) + ; (vim.cmd "FzfLua buffers query=term://"))) + ; (bind! :n :t jump-or-open-terminal) + ; :config + ; (let [fzf (require :fzf-lua)] + ; (fzf.register_ui_select))) ;; Nvim surround (use! :kylechui/nvim-surround @@ -212,7 +277,7 @@ (bind! :n :ci "IconPickerNormal") (bind! :n :cy "IconPickerYank") :config - (vim.cmd "PackerLoad fzf-lua") + ;;(vim.cmd "PackerLoad fzf-lua") (setup! :icon-picker :disable_legacy_commands true)) diff --git a/fnl/plugin/lsp.fnl b/fnl/plugin/lsp.fnl index fdb2641..a2a053d 100644 --- a/fnl/plugin/lsp.fnl +++ b/fnl/plugin/lsp.fnl @@ -9,9 +9,9 @@ { :name "buffer" :priority 0 :group 3 } { :name "path" :priority 0 :group 4 }]}) (bind! :n :gD vim.lsp.buf.declaration buf) - (bind! :n :gd vim.lsp.buf.definition buf) + ;; (bind! :n :gd vim.lsp.buf.definition buf) (bind! :n :K vim.lsp.buf.hover buf) - (bind! :n :gI vim.lsp.buf.implementation buf) + ;; (bind! :n :gI vim.lsp.buf.implementation buf) (bind! :n : vim.lsp.buf.signature_help buf) (bind! :n :wa vim.lsp.buf.add_workspace_folder buf) (bind! :n :wr vim.lsp.buf.remove_workspace_folder buf) @@ -19,18 +19,31 @@ (vim.lsp.buf.list_workspace_folders))) buf) (bind! :n :D vim.lsp.buf.type_definition buf) (bind! :n :rn vim.lsp.buf.rename buf) - ; (bind! :n :cn vim.lsp.buf.code_action buf) + (bind! :n :cn vim.lsp.buf.code_action buf) ; (bind! :n :gr vim.lsp.buf.references buf) ; (bind! :n :o #(vim.lsp.buf.format { :async true }) buf) ;; Some fzf commands - (bind! :n :gr "FzfLua lsp_references" buf) - (bind! :n :s "FzfLua lsp_live_workspace_symbols" buf) - (bind! :n :fs "FzfLua lsp_live_workspace_symbols" buf) - (bind! :n :fS "FzfLua lsp_workspace_symbols" buf) - (bind! :n :d "FzfLua lsp_document_symbols" buf) - (bind! :n :fd "FzfLua lsp_document_symbols" buf) - (bind! :n :cn "FzfLua lsp_code_actions" buf)) + ;(bind! :n :gr "FzfLua lsp_references" buf) + ;(bind! :n :s "FzfLua lsp_live_workspace_symbols" buf) + ;(bind! :n :fs "FzfLua lsp_live_workspace_symbols" buf) + ;(bind! :n :fS "FzfLua lsp_workspace_symbols" buf) + ;(bind! :n :d "FzfLua lsp_document_symbols" buf) + ;(bind! :n :fd "FzfLua lsp_document_symbols" buf) + ;(bind! :n :cn "FzfLua lsp_code_actions" buf) + + ;; Some telescope commands + (let [builtin (require :telescope.builtin)] + (bind! :n :gr builtin.lsp_references buf) + (bind! :n :s builtin.lsp_live_workspace_symbols buf) + (bind! :n :fs builtin.lsp_live_workspace_symbols buf) + (bind! :n :fS builtin.lsp_workspace_symbols buf) + (bind! :n :d builtin.lsp_document_symbols buf) + (bind! :n :fd builtin.lsp_document_symbols buf) + (bind! :n :cn builtin.lsp_code_actions buf) + (bind! :n :gd vim.lsp.buf.definition buf) + (bind! :n :gI vim.lsp.buf.implementation buf))) + (fn get-data-dir [server root] (let [resolved_path (vim.fn.resolve root)