feat: remove intellitab
use builtin `cc` for same functionality
This commit is contained in:
parent
287395d593
commit
9ca2706431
3 changed files with 2 additions and 77 deletions
|
@ -139,7 +139,6 @@
|
|||
general = with pkgs.vimPlugins; [
|
||||
nvim-autopairs
|
||||
nvim-lspconfig
|
||||
intellitab-nvim
|
||||
which-key-nvim
|
||||
telescope-nvim
|
||||
markdown-preview-nvim
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
-- Non-exhaustive collection of keymaps. I've decided it's more sane to place
|
||||
-- plugin specific maps in their respective setup scripts
|
||||
-- Mostly remaps of existing keys. New keybinds are generally defined directly
|
||||
-- in their plugin specs for `lz.n`
|
||||
|
||||
vim.g.mapleader = " "
|
||||
vim.keymap.set("n", "<leader>", "<nop>")
|
||||
|
@ -22,8 +22,6 @@ vim.keymap.set({ "n", "v" }, "<leader>Y", '"+Y', { desc = "yank rest of line to
|
|||
vim.keymap.set({ "n", "v" }, "<leader>p", '"+p', { desc = "put after cursor from clipboard" })
|
||||
vim.keymap.set({ "n", "v" }, "<leader>P", '"+P', { desc = "put before cursor from clipboard" })
|
||||
|
||||
vim.keymap.set("i", "<Tab>", require("scripts.intellitab").indent)
|
||||
|
||||
-- Allow increment/decrement repeatedly in visual
|
||||
vim.keymap.set("v", "<C-a>", "<C-a>gv")
|
||||
vim.keymap.set("v", "<C-x>", "<C-x>gv")
|
||||
|
|
|
@ -1,72 +0,0 @@
|
|||
-- `intellitab.nvim` by Pedro Alves (https://github.com/pta2002)
|
||||
-- URL: https://github.com/pta2002/intellitab.nvim?tab=MIT-1-ov-file
|
||||
-- Copyright 2021 Pedro Alves. Licensed under MIT.
|
||||
|
||||
local v = vim.api
|
||||
|
||||
local treesitter = require("nvim-treesitter")
|
||||
|
||||
local function get_line_indent(line, sw)
|
||||
local indent = 0
|
||||
|
||||
for c in line:gmatch("%s") do
|
||||
if c == "\t" then
|
||||
indent = indent + sw
|
||||
else
|
||||
indent = indent + 1
|
||||
end
|
||||
end
|
||||
|
||||
return indent
|
||||
end
|
||||
|
||||
local function indent()
|
||||
local cursor = v.nvim_win_get_cursor(0)
|
||||
local line = v.nvim_buf_get_lines(0, cursor[1] - 1, cursor[1], false)[1]
|
||||
|
||||
local indentexpr = v.nvim_get_option_value("indentexpr", { buf = 0 })
|
||||
local expand = v.nvim_get_option_value("expandtab", { buf = 0 })
|
||||
local shiftwidth = v.nvim_eval("shiftwidth()")
|
||||
local tab_char = v.nvim_replace_termcodes("<Tab>", true, true, true)
|
||||
local indent_goal
|
||||
|
||||
if treesitter ~= nil and treesitter.get_indent ~= nil then
|
||||
indent_goal = treesitter.get_indent(line)
|
||||
end
|
||||
|
||||
if indent_goal == nil or indent_goal < 0 then
|
||||
if indentexpr ~= "" then
|
||||
indent_goal = v.nvim_eval(indentexpr)
|
||||
elseif v.nvim_get_option_value("cindent", { buf = 0 }) then
|
||||
indent_goal = v.nvim_call_function("cindent", { cursor[1] })
|
||||
else
|
||||
indent_goal = v.nvim_call_function("indent", { cursor[1] })
|
||||
end
|
||||
end
|
||||
|
||||
if indent_goal == -1 and cursor[1] ~= 1 then
|
||||
local prev_line = v.nvim_buf_get_lines(0, cursor[1] - 2, cursor[1] - 1, false)[1]
|
||||
indent_goal = get_line_indent(prev_line, shiftwidth)
|
||||
end
|
||||
|
||||
-- Reset the cursor, since the functions are free to move it
|
||||
v.nvim_win_set_cursor(0, cursor)
|
||||
|
||||
if cursor[2] == 0 and line == "" and indent_goal ~= nil and indent_goal > 0 then
|
||||
local i = 0
|
||||
while i < indent_goal do
|
||||
if expand then
|
||||
v.nvim_feedkeys(" ", "n", true)
|
||||
i = i + 1
|
||||
else
|
||||
v.nvim_feedkeys(tab_char, "n", true)
|
||||
i = i + shiftwidth
|
||||
end
|
||||
end
|
||||
print(i, indent_goal)
|
||||
else
|
||||
v.nvim_feedkeys(tab_char, "n", true)
|
||||
end
|
||||
end
|
||||
|
||||
return { indent = indent }
|
Loading…
Reference in a new issue