From: Georgios Atheridis Date: Sun, 5 Jun 2022 11:16:35 +0000 (+0300) Subject: treesitter X-Git-Url: https://git.atheridis.org/?a=commitdiff_plain;h=152655f391bf2fae1d8e3b5114bf4f2764e8e302;p=configs%2Fneovim.git treesitter --- diff --git a/nvim/init.lua b/nvim/init.lua index c020c10..9f4b11b 100644 --- a/nvim/init.lua +++ b/nvim/init.lua @@ -5,3 +5,4 @@ require("nvim.colorscheme") require("nvim.cmp") require("nvim.lsp") require("nvim.autopairs") +require("nvim.treesitter") diff --git a/nvim/lua/nvim/autopairs.lua b/nvim/lua/nvim/autopairs.lua index 6e31b09..75a4998 100644 --- a/nvim/lua/nvim/autopairs.lua +++ b/nvim/lua/nvim/autopairs.lua @@ -4,15 +4,46 @@ if not status_ok then return end +local Rule = require("nvim-autopairs.rule") + npairs.setup ({ check_ts = true, ts_config = { lua = {"string"}, -- it will not add a pair on that treesitter node javascript = {"template_string"}, java = false, -- don't check treesitter on java - } + }, + map_cr = false, }) +--Add spaces between parentheses +npairs.add_rules { + Rule(' ', ' ') + :with_pair(function (opts) + local pair = opts.line:sub(opts.col - 1, opts.col) + return vim.tbl_contains({ '()', '[]', '{}' }, pair) + end), + Rule('( ', ' )') + :with_pair(function() return false end) + :with_move(function(opts) + return opts.prev_char:match('.%)') ~= nil + end) + :use_key(')'), + Rule('{ ', ' }') + :with_pair(function() return false end) + :with_move(function(opts) + return opts.prev_char:match('.%}') ~= nil + end) + :use_key('}'), + Rule('[ ', ' ]') + :with_pair(function() return false end) + :with_move(function(opts) + return opts.prev_char:match('.%]') ~= nil + end) + :use_key(']') +}-- + + local cmp_autopairs = require('nvim-autopairs.completion.cmp') local cmp_status_ok, cmp = pcall(require, "cmp") if not cmp_status_ok then @@ -21,5 +52,7 @@ end cmp.event:on( 'confirm_done', cmp_autopairs.on_confirm_done({ map_char = { tex = '' } })) + + -- add a lisp filetype (wrap my-function), FYI: Hardcoded = { "clojure", "clojurescript", "fennel", "janet" } cmp_autopairs.lisp[#cmp_autopairs.lisp+1] = "racket" diff --git a/nvim/lua/nvim/lsp/settings/pyright.lua b/nvim/lua/nvim/lsp/settings/pyright.lua index c43621d..1fe7686 100644 --- a/nvim/lua/nvim/lsp/settings/pyright.lua +++ b/nvim/lua/nvim/lsp/settings/pyright.lua @@ -2,7 +2,7 @@ return { settings = { python = { analysis = { - typeCheckingMode = "strict", + typeCheckingMode = "basic", } } }, diff --git a/nvim/lua/nvim/options.lua b/nvim/lua/nvim/options.lua index 20e85ab..9ed4443 100644 --- a/nvim/lua/nvim/options.lua +++ b/nvim/lua/nvim/options.lua @@ -18,7 +18,7 @@ local options = { undofile = true, updatetime = 300, writebackup = false, - expandtab = true, + expandtab = false, shiftwidth = 4, tabstop = 4, number = true, diff --git a/nvim/lua/nvim/plugins.lua b/nvim/lua/nvim/plugins.lua index b87e6a2..6c3e8b6 100644 --- a/nvim/lua/nvim/plugins.lua +++ b/nvim/lua/nvim/plugins.lua @@ -79,12 +79,14 @@ return packer.startup(function(use) --Telescope use { - "nvim-telescope/telescope.nvim", - requires = { {"nvim-lua/plenary.nvim"} }, + "nvim-telescope/telescope.nvim", + requires = { + { "nvim-lua/plenary.nvim" }, + -- { "nvim-telescope/telescope-media-files.nvim" }, + { "BurntSushi/ripgrep" }, + }, } - use "BurntSushi/ripgrep" - -- Commenter use { "numToStr/Comment.nvim", @@ -93,6 +95,23 @@ return packer.startup(function(use) end } + -- Treesitter + use { + "nvim-treesitter/nvim-treesitter", + run = ":TSUpdate", + } + use { "p00f/nvim-ts-rainbow" , + requires = { + { "nvim-treesitter/nvim-treesitter" } + } + } + use { "nvim-treesitter/playground" , + requires = { + { "nvim-treesitter/nvim-treesitter" } + } + } + + -- Autopairs use "windwp/nvim-autopairs" -- PLUGINS END -- diff --git a/nvim/lua/nvim/telescope.lua b/nvim/lua/nvim/telescope.lua index e69de29..f0d01b1 100644 --- a/nvim/lua/nvim/telescope.lua +++ b/nvim/lua/nvim/telescope.lua @@ -0,0 +1,104 @@ +local status_ok, telescope = pcall(require, "telescope") +if not status_ok then + return +end + +-- telescope.load_extension('media_files') + +local actions = require "telescope.actions" + +telescope.setup { + defaults = { + + prompt_prefix = " ", + selection_caret = " ", + path_display = { "smart" }, + + mappings = { + i = { + [""] = actions.cycle_history_next, + [""] = actions.cycle_history_prev, + + [""] = actions.move_selection_next, + [""] = actions.move_selection_previous, + + [""] = actions.close, + + [""] = actions.move_selection_next, + [""] = actions.move_selection_previous, + + [""] = actions.select_default, + [""] = actions.select_horizontal, + [""] = actions.select_vertical, + [""] = actions.select_tab, + + [""] = actions.preview_scrolling_up, + [""] = actions.preview_scrolling_down, + + [""] = actions.results_scrolling_up, + [""] = actions.results_scrolling_down, + + [""] = actions.toggle_selection + actions.move_selection_worse, + [""] = actions.toggle_selection + actions.move_selection_better, + [""] = actions.send_to_qflist + actions.open_qflist, + [""] = actions.send_selected_to_qflist + actions.open_qflist, + [""] = actions.complete_tag, + [""] = actions.which_key, -- keys from pressing + }, + + n = { + [""] = actions.close, + [""] = actions.select_default, + [""] = actions.select_horizontal, + [""] = actions.select_vertical, + [""] = actions.select_tab, + + [""] = actions.toggle_selection + actions.move_selection_worse, + [""] = actions.toggle_selection + actions.move_selection_better, + [""] = actions.send_to_qflist + actions.open_qflist, + [""] = actions.send_selected_to_qflist + actions.open_qflist, + + ["j"] = actions.move_selection_next, + ["k"] = actions.move_selection_previous, + ["H"] = actions.move_to_top, + ["M"] = actions.move_to_middle, + ["L"] = actions.move_to_bottom, + + [""] = actions.move_selection_next, + [""] = actions.move_selection_previous, + ["gg"] = actions.move_to_top, + ["G"] = actions.move_to_bottom, + + [""] = actions.preview_scrolling_up, + [""] = actions.preview_scrolling_down, + + [""] = actions.results_scrolling_up, + [""] = actions.results_scrolling_down, + + ["?"] = actions.which_key, + }, + }, + }, + pickers = { + -- Default configuration for builtin pickers goes here: + -- picker_name = { + -- picker_config_key = value, + -- ... + -- } + -- Now the picker_config_key will be applied every time you call this + -- builtin picker + }, + extensions = { + -- media_files = { + -- -- filetypes whitelist + -- -- defaults to {"png", "jpg", "mp4", "webm", "pdf"} + -- filetypes = {"png", "webp", "jpg", "jpeg"}, + -- find_cmd = "rg" -- find command (defaults to `fd`) + -- } + -- Your extension configuration goes here: + -- extension_name = { + -- extension_config_key = value, + -- } + -- please take a look at the readme of the extension you want to configure + }, +} diff --git a/nvim/lua/nvim/treesitter.lua b/nvim/lua/nvim/treesitter.lua new file mode 100644 index 0000000..1c28b60 --- /dev/null +++ b/nvim/lua/nvim/treesitter.lua @@ -0,0 +1,13 @@ +local configs = require("nvim-treesitter.configs") +configs.setup { + ensure_installed = "all", + sync_install = false, + ignore_install = { "" }, -- List of parsers to ignore installing + highlight = { + enable = true, -- false will disable the whole extension + disable = { "" }, -- list of language that will be disabled + additional_vim_regex_highlighting = true, + + }, + indent = { enable = true, disable = { "yaml" } }, +}