aboutsummaryrefslogtreecommitdiffstats
path: root/lua/config/editor.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/config/editor.lua')
-rw-r--r--lua/config/editor.lua137
1 files changed, 41 insertions, 96 deletions
diff --git a/lua/config/editor.lua b/lua/config/editor.lua
index 9594778..daff2ad 100644
--- a/lua/config/editor.lua
+++ b/lua/config/editor.lua
@@ -1,35 +1,30 @@
1local js_based_languages = { "typescript", "javascript", "typescriptreact", "javascriptreact" } 1local js_based_languages = { "typescript", "javascript", "typescriptreact", "javascriptreact" }
2local option = vim.opt; 2local option = vim.opt
3local keymap = vim.keymap; 3local keymap = vim.keymap
4 4
5local dap = require("dap") 5local telescope = require("telescope.builtin")
6local telescope = require('telescope.builtin'); 6local autotag = require("nvim-ts-autotag").setup()
7local autotag = require('nvim-ts-autotag').setup();
8local dap_vscode = require("dap-vscode-js").setup({
9 debugger_path = "(runtimedir)/site/pack/packer/opt/vscode-js-debug",
10 adapters = { 'chrome', 'pwa-node', 'pwa-chrome', 'pwa-msedge', 'node-terminal', 'pwa-extensionHost', 'node', 'chrome' },
11})
12 7
13--Basic Editor Setup 8--Basic Editor Setup
14option.nu = true; 9option.nu = true
15option.tabstop = 2; 10option.tabstop = 2
16option.softtabstop = 2; 11option.softtabstop = 2
17option.shiftwidth = 2; 12option.shiftwidth = 2
18option.expandtab = true; 13option.expandtab = true
19option.smartindent = true; 14option.smartindent = true
20option.wrap = false; 15option.wrap = false
21option.swapfile = false; 16option.swapfile = false
22option.hlsearch = false; 17option.hlsearch = false
23option.incsearch = true; 18option.incsearch = true
24option.updatetime = 50; 19option.updatetime = 50
25option.laststatus = 0; 20option.laststatus = 0
26option.signcolumn = "number"; 21option.signcolumn = "number"
27option.autoindent = true; 22option.autoindent = true
28option.clipboard = "unnamedplus"; 23option.clipboard = "unnamedplus"
29option.termguicolors = true; 24option.termguicolors = true
30 25
31-- Setup Editor Theme 26-- Setup Editor Theme
32vim.cmd.colorscheme("darkblue") 27vim.cmd.colorscheme("gruvbox")
33vim.cmd([[ 28vim.cmd([[
34highlight GitGutterAdd ctermbg=none 29highlight GitGutterAdd ctermbg=none
35highlight GitGutterAdd guibg=none 30highlight GitGutterAdd guibg=none
@@ -39,92 +34,42 @@ highlight signcolumn ctermbg=none
39highlight signcolumn guibg=none 34highlight signcolumn guibg=none
40]]) 35]])
41 36
37
42-- run specific commands after different file extensions 38-- run specific commands after different file extensions
43vim.cmd([[ 39vim.cmd([[
44augroup RunPfOnSave 40augroup RunPfOnSave
45autocmd! 41autocmd!
46autocmd BufWritePost *.js,*.ts,*.jsx,*json !prettier --write % 42autocmd BufWritePost *.js,*.ts,*.jsx,*json,*.tsx,*.css,*.html,*.yaml,*.md silent! !prettier --write %
47autocmd BufWritePost *.tex :VimtexCompile 43autocmd BufWritePost *.tex :VimtexCompile
48autocmd BufWritePost *.md :MarkdownPreview 44autocmd BufWritePost *.md silent! :MarkdownPreview
45autocmd BufWritePost *.php silent! !php-cs-fixer fix %
49augroup END 46augroup END
50]]) 47]])
51 48
52-- Gui options 49-- Gui options
53vim.o.guifont = "Fira Code:h7" 50vim.o.guifont = "Fira Code:h7"
54vim.g.vimtex_view_method = 'zathura' 51vim.g.vimtex_view_method = "zathura"
55vim.g.vimtex_compiler_method = 'latexrun' 52vim.g.vimtex_compiler_method = "latexrun"
56vim.g.gitgutter_set_sign_backgrounds = 1; 53vim.g.gitgutter_set_sign_backgrounds = 1
57vim.fn.sign_define('DapBreakpoint',{ text ='🟥', texthl ='', linehl ='', numhl =''})
58vim.fn.sign_define('DapStopped',{ text ='▶️', texthl ='', linehl ='', numhl =''})
59 54
60--Keybinds 55--Keybinds
61vim.g.mapleader = (" ") 56vim.g.mapleader = " "
62keymap.set("n", "<leader>e", vim.cmd.Ex) 57keymap.set("n", "<leader>e", vim.cmd.Ex)
63keymap.set('n', '<leader>f', telescope.find_files, {}) 58keymap.set("n", "<leader>f", telescope.find_files, {})
64keymap.set('n', '<leader>fg', telescope.live_grep, {}) 59keymap.set("n", "<leader>fg", telescope.live_grep, {})
65keymap.set('n', '<leader>fb', telescope.buffers, {}) 60keymap.set("n", "<leader>fb", telescope.buffers, {})
66keymap.set('n', '<leader>fh', telescope.help_tags, {}) 61keymap.set("n", "<leader>fh", telescope.help_tags, {})
67keymap.set("n", "<leader>s", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]]) 62keymap.set("n", "<leader>s", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]])
68keymap.set("n", "<leader>a", "ggVG") 63keymap.set("n", "<leader>a", "ggVG")
69keymap.set("v", "J", ":m '>+1<CR>gv=gv") 64keymap.set("v", "J", ":m '>+1<CR>gv=gv")
70keymap.set("v", "K", ":m '<-2<CR>gv=gv") 65keymap.set("v", "K", ":m '<-2<CR>gv=gv")
71 66
72-- Debugger keybinds
73keymap.set('n', '<F5>', require 'dap'.continue)
74keymap.set('n', '<F10>', require 'dap'.step_over)
75keymap.set('n', '<F11>', require 'dap'.step_into)
76keymap.set('n', '<F12>', require 'dap'.step_out)
77keymap.set('n', '<leader>b', require 'dap'.toggle_breakpoint)
78
79keymap.set('n', '<leader>B', function()
80 require 'dap'.set_breakpoint(vim.fn.input('Breakpoint condition: '))
81end)
82
83keymap.set('n', '<leader>ui', require 'dapui'.toggle)
84for _, language in ipairs(js_based_languages) do
85 require("dap").configurations[language] = {
86 {
87 type = "pwa-node",
88 request = "launch",
89 name = "Launch file",
90 program = "${file}",
91 cwd = "${workspaceFolder}",
92 },
93 {
94 type = "pwa-node",
95 request = "attach",
96 name = "Attach",
97 processId = require 'dap.utils'.pick_process,
98 cwd = "${workspaceFolder}",
99 },
100 {
101 type = "pwa-chrome",
102 request = "launch",
103 name = "Start Chrome with \"localhost\"",
104 url = "http://localhost:3000",
105 webRoot = "${workspaceFolder}",
106 userDataDir = "${workspaceFolder}/.vscode/vscode-chrome-debug-userdatadir"
107 }
108 }
109end
110require("dapui").setup()
111local dap, dapui = require("dap"), require("dapui")
112dap.listeners.after.event_initialized["dapui_config"] = function()
113 dapui.open({})
114end
115dap.listeners.before.event_terminated["dapui_config"] = function()
116 dapui.close({})
117end
118dap.listeners.before.event_exited["dapui_config"] = function()
119 dapui.close({})
120end
121
122--Treesitter 67--Treesitter
123require 'nvim-treesitter.configs'.setup { 68require("nvim-treesitter.configs").setup({
124 ensure_installed = { "javascript", "typescript", "rust", "c", "lua", "vim" }, 69 ensure_installed = { "javascript", "typescript", "rust", "c", "lua", "vim" },
125 sync_install = false, 70 sync_install = false,
126 auto_install = true, 71 auto_install = true,
127 highlight = { 72 highlight = {
128 enable = true, 73 enable = true,
129 } 74 },
130} 75})