From 367836c01323c22cd3fa07bc88f5195014a2cf52 Mon Sep 17 00:00:00 2001 From: phajw Date: Wed, 4 Oct 2023 06:04:43 -0400 Subject: Move from github --- lua/config/editor.lua | 140 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 lua/config/editor.lua (limited to 'lua/config/editor.lua') diff --git a/lua/config/editor.lua b/lua/config/editor.lua new file mode 100644 index 0000000..3db21d6 --- /dev/null +++ b/lua/config/editor.lua @@ -0,0 +1,140 @@ +local js_based_languages = { "typescript", "javascript", "typescriptreact", "javascriptreact" } +local option = vim.opt; +local keymap = vim.keymap; + +local dap = require("dap") +local telescope = require('telescope.builtin'); +local autotag = require('nvim-ts-autotag').setup(); +local dap_vscode = require("dap-vscode-js").setup({ + debugger_path = "(runtimedir)/site/pack/packer/opt/vscode-js-debug", + adapters = { 'chrome', 'pwa-node', 'pwa-chrome', 'pwa-msedge', 'node-terminal', 'pwa-extensionHost', 'node', 'chrome' }, +}) + +--Basic Editor Setup +option.nu = true; +option.tabstop = 2; +option.softtabstop = 2; +option.shiftwidth = 2; +option.expandtab = true; +option.smartindent = true; +option.wrap = false; +option.swapfile = false; +option.hlsearch = false; +option.incsearch = true; +option.updatetime = 50; +option.laststatus = 0; +option.signcolumn = "number"; +option.autoindent = true; +option.clipboard = "unnamedplus"; +option.termguicolors = true; + +-- Setup Editor Theme + vim.cmd.colorscheme("gruvbox") + vim.cmd([[ + highlight GitGutterAdd ctermbg=none + highlight GitGutterAdd guibg=none + highlight Normal ctermbg=none + highlight Normal guibg=none + highlight signcolumn ctermbg=none + highlight signcolumn guibg=none + ]]) + +-- run specific commands after different file extensions +vim.cmd([[ + augroup RunPfOnSave + autocmd! + autocmd BufWritePost *.js,*.ts,*.jsx,*json !prettier --write . + autocmd BufWritePost *.tex :VimtexCompile + autocmd BufWritePost *.md :MarkdownPreview + augroup END +]]) + +-- vim.cmd([[ +-- augroup RunPfOnSave +-- autocmd! +-- augroup END +-- ]]) +-- +-- vim.cmd([[ +-- augroup RunPfOnSave +-- autocmd! +-- autocmd BufWritePost *.tex :VimtexCompile +-- augroup END +--]]) + +-- Gui options +vim.o.guifont = "Fira Code:h7" +vim.g.vimtex_view_method = 'zathura' +vim.g.vimtex_compiler_method = 'latexrun' +vim.g.gitgutter_set_sign_backgrounds = 1; +vim.fn.sign_define('DapBreakpoint',{ text ='🟥', texthl ='', linehl ='', numhl =''}) +vim.fn.sign_define('DapStopped',{ text ='▶️', texthl ='', linehl ='', numhl =''}) + +--Keybinds +vim.g.mapleader = (" ") +keymap.set("n", "e", vim.cmd.Ex) +keymap.set('n', 'f', telescope.find_files, {}) +keymap.set("n", "s", [[:%s/\<\>//gI]]) +keymap.set("n", "a", "ggVG") +keymap.set("v", "J", ":m '>+1gv=gv") +keymap.set("v", "K", ":m '<-2gv=gv") + +-- Debugger keybinds +keymap.set('n', '', require 'dap'.continue) +keymap.set('n', '', require 'dap'.step_over) +keymap.set('n', '', require 'dap'.step_into) +keymap.set('n', '', require 'dap'.step_out) +keymap.set('n', 'b', require 'dap'.toggle_breakpoint) + +keymap.set('n', 'B', function() + require 'dap'.set_breakpoint(vim.fn.input('Breakpoint condition: ')) +end) + +keymap.set('n', 'ui', require 'dapui'.toggle) +for _, language in ipairs(js_based_languages) do + require("dap").configurations[language] = { + { + type = "pwa-node", + request = "launch", + name = "Launch file", + program = "${file}", + cwd = "${workspaceFolder}", + }, + { + type = "pwa-node", + request = "attach", + name = "Attach", + processId = require 'dap.utils'.pick_process, + cwd = "${workspaceFolder}", + }, + { + type = "pwa-chrome", + request = "launch", + name = "Start Chrome with \"localhost\"", + url = "http://localhost:3000", + webRoot = "${workspaceFolder}", + userDataDir = "${workspaceFolder}/.vscode/vscode-chrome-debug-userdatadir" + } + } +end +require("dapui").setup() +local dap, dapui = require("dap"), require("dapui") +dap.listeners.after.event_initialized["dapui_config"] = function() + dapui.open({}) +end +dap.listeners.before.event_terminated["dapui_config"] = function() + dapui.close({}) +end +dap.listeners.before.event_exited["dapui_config"] = function() + dapui.close({}) +end + +--Treesitter +require 'nvim-treesitter.configs'.setup { + ensure_installed = { "javascript", "typescript", "rust", "c", "lua", "vim" }, + sync_install = false, + auto_install = true, + highlight = { + enable = true, + } +} -- cgit v1.2.3