add symbols outline, bit of dap
This commit is contained in:
		@@ -1,27 +1,79 @@
 | 
			
		||||
vim.fn.sign_define('DapBreakpoint', {text='🟥', texthl='', linehl='', numhl=''})
 | 
			
		||||
vim.fn.sign_define('DapStopped', {text='⭐️', texthl='', linehl='', numhl=''})
 | 
			
		||||
local dap = require('dap')
 | 
			
		||||
dap.adapters.node2 = {
 | 
			
		||||
  type = 'executable',
 | 
			
		||||
  command = 'node',
 | 
			
		||||
  args = {os.getenv('HOME') .. '/dev/microsoft/vscode-node-debug2/out/src/nodeDebug.js'},
 | 
			
		||||
}
 | 
			
		||||
dap.configurations.javascript = {
 | 
			
		||||
  {
 | 
			
		||||
    name = 'Launch',
 | 
			
		||||
    type = 'node2',
 | 
			
		||||
    request = 'launch',
 | 
			
		||||
    program = '${file}',
 | 
			
		||||
    cwd = vim.fn.getcwd(),
 | 
			
		||||
    sourceMaps = true,
 | 
			
		||||
    protocol = 'inspector',
 | 
			
		||||
    console = 'integratedTerminal',
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    -- For this to work you need to make sure the node process is started with the `--inspect` flag.
 | 
			
		||||
    name = 'Attach to process',
 | 
			
		||||
    type = 'node2',
 | 
			
		||||
    request = 'attach',
 | 
			
		||||
    processId = require'dap.utils'.pick_process,
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
local M ={}
 | 
			
		||||
 | 
			
		||||
local  DEBUGGER_PATH = {os.getenv('HOME')..'/.local/share/nvim/mason/packages/js-debug-adapter'}
 | 
			
		||||
 | 
			
		||||
function M.setup()
 | 
			
		||||
  require('dap-vscode-js').setup {
 | 
			
		||||
    node_path = "node",
 | 
			
		||||
    debugger_path = DEBUGGER_PATH,
 | 
			
		||||
    adapters = {"pwa-node","pwa-chrome","pwa-msedge","node-terminal", "pwa-extensionHost"}
 | 
			
		||||
  }
 | 
			
		||||
  for _, language in ipairs {"typescript", "javascript"} do
 | 
			
		||||
    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-node",
 | 
			
		||||
      request = "launch",
 | 
			
		||||
      name = "Debug Jest Tests",
 | 
			
		||||
      runtimeExecutable = "node",
 | 
			
		||||
      runtimeArgs = {
 | 
			
		||||
        "./node_modules/jest/bin/jestj",
 | 
			
		||||
        "--runInBand",
 | 
			
		||||
      },
 | 
			
		||||
      rootPath = "${workspaceFolder}",
 | 
			
		||||
      console = "integratedTerminal",
 | 
			
		||||
      internalConsoleOptions = "neverOpen",
 | 
			
		||||
      cwd = "${workspacefolder}"
 | 
			
		||||
    }
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
local function configure_debuggers()
 | 
			
		||||
  require("config.dap.javascript").setup()
 | 
			
		||||
  require("config.dap.typescript").setup()
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
return M
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
--dap.adapters.node2 = {
 | 
			
		||||
--  type = 'executable',
 | 
			
		||||
--  command = 'node',
 | 
			
		||||
--  args = {os.getenv('HOME') .. '/.local/share/nvim/mason/packages/node-debug2-adapter/out/src/nodeDebug.js'},
 | 
			
		||||
--}
 | 
			
		||||
--dap.configurations.javascript = {
 | 
			
		||||
--  {
 | 
			
		||||
--    name = 'Launch',
 | 
			
		||||
--    type = 'node2',
 | 
			
		||||
--    request = 'launch',
 | 
			
		||||
--    program = '${file}',
 | 
			
		||||
--    cwd = vim.fn.getcwd(),
 | 
			
		||||
--    sourceMaps = true,
 | 
			
		||||
--    protocol = 'inspector',
 | 
			
		||||
--    console = 'integratedTerminal',
 | 
			
		||||
--  },
 | 
			
		||||
--  {
 | 
			
		||||
--    -- For this to work you need to make sure the node process is started with the `--inspect` flag.
 | 
			
		||||
--    name = 'Attach to process',
 | 
			
		||||
--    type = 'node2',
 | 
			
		||||
--    request = 'attach',
 | 
			
		||||
--    processId = require'dap.utils'.pick_process,
 | 
			
		||||
--  },
 | 
			
		||||
--}
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,16 @@ require("packer").startup(function(use)
 | 
			
		||||
    "neovim/nvim-lspconfig",
 | 
			
		||||
    "WhoIsSethDaniel/mason-tool-installer.nvim",
 | 
			
		||||
  })
 | 
			
		||||
  use({ "rcarriga/nvim-dap-ui", requires = { "mfussenegger/nvim-dap" } })
 | 
			
		||||
  use { "mfussenegger/nvim-dap",
 | 
			
		||||
    requires = {
 | 
			
		||||
      "theHamsta/nvim-dap-virtual-text",
 | 
			
		||||
      "rcarriga/nvim-dap-ui",
 | 
			
		||||
      "mfussenegger/nvim-dap-python",
 | 
			
		||||
      "nvim-telescope/telescope-dap.nvim",
 | 
			
		||||
      { "jbyuki/one-small-step-for-vimkind", module = "osv" },
 | 
			
		||||
      { "mxsdev/nvim-dap-vscode-js" },
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  use("jose-elias-alvarez/null-ls.nvim")
 | 
			
		||||
  use({
 | 
			
		||||
    "nvim-telescope/telescope.nvim",
 | 
			
		||||
@@ -91,4 +100,9 @@ require("packer").startup(function(use)
 | 
			
		||||
    "folke/trouble.nvim",
 | 
			
		||||
    requires = "kyazdani42/nvim-web-devicons"
 | 
			
		||||
  }
 | 
			
		||||
  use {
 | 
			
		||||
    'kkoomen/vim-doge',
 | 
			
		||||
    run = ':call doge#install()'
 | 
			
		||||
  }
 | 
			
		||||
  use 'simrat39/symbols-outline.nvim'
 | 
			
		||||
end)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										62
									
								
								nvim/lua/symbols_outline.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								nvim/lua/symbols_outline.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,62 @@
 | 
			
		||||
local opts = {
 | 
			
		||||
  highlight_hovered_item = true,
 | 
			
		||||
  show_guides = true,
 | 
			
		||||
  auto_preview = false,
 | 
			
		||||
  position = 'right',
 | 
			
		||||
  relative_width = true,
 | 
			
		||||
  width = 25,
 | 
			
		||||
  auto_close = false,
 | 
			
		||||
  show_numbers = false,
 | 
			
		||||
  show_relative_numbers = false,
 | 
			
		||||
  show_symbol_details = true,
 | 
			
		||||
  preview_bg_highlight = 'Pmenu',
 | 
			
		||||
  autofold_depth = nil,
 | 
			
		||||
  auto_unfold_hover = true,
 | 
			
		||||
  fold_markers = { '', '' },
 | 
			
		||||
  wrap = false,
 | 
			
		||||
  keymaps = { -- These keymaps can be a string or a table for multiple keys
 | 
			
		||||
    close = {"<Esc>", "q"},
 | 
			
		||||
    goto_location = "<Cr>",
 | 
			
		||||
    focus_location = "o",
 | 
			
		||||
    hover_symbol = "<C-space>",
 | 
			
		||||
    toggle_preview = "K",
 | 
			
		||||
    rename_symbol = "r",
 | 
			
		||||
    code_actions = "a",
 | 
			
		||||
    fold = "h",
 | 
			
		||||
    unfold = "l",
 | 
			
		||||
    fold_all = "W",
 | 
			
		||||
    unfold_all = "E",
 | 
			
		||||
    fold_reset = "R",
 | 
			
		||||
  },
 | 
			
		||||
  lsp_blacklist = {},
 | 
			
		||||
  symbol_blacklist = {},
 | 
			
		||||
  symbols = {
 | 
			
		||||
    File = {icon = "", hl = "TSURI"},
 | 
			
		||||
    Module = {icon = "", hl = "TSNamespace"},
 | 
			
		||||
    Namespace = {icon = "", hl = "TSNamespace"},
 | 
			
		||||
    Package = {icon = "", hl = "TSNamespace"},
 | 
			
		||||
    Class = {icon = "𝓒", hl = "TSType"},
 | 
			
		||||
    Method = {icon = "ƒ", hl = "TSMethod"},
 | 
			
		||||
    Property = {icon = "", hl = "TSMethod"},
 | 
			
		||||
    Field = {icon = "", hl = "TSField"},
 | 
			
		||||
    Constructor = {icon = "", hl = "TSConstructor"},
 | 
			
		||||
    Enum = {icon = "ℰ", hl = "TSType"},
 | 
			
		||||
    Interface = {icon = "ﰮ", hl = "TSType"},
 | 
			
		||||
    Function = {icon = "", hl = "TSFunction"},
 | 
			
		||||
    Variable = {icon = "", hl = "TSConstant"},
 | 
			
		||||
    Constant = {icon = "", hl = "TSConstant"},
 | 
			
		||||
    String = {icon = "𝓐", hl = "TSString"},
 | 
			
		||||
    Number = {icon = "#", hl = "TSNumber"},
 | 
			
		||||
    Boolean = {icon = "⊨", hl = "TSBoolean"},
 | 
			
		||||
    Array = {icon = "", hl = "TSConstant"},
 | 
			
		||||
    Object = {icon = "⦿", hl = "TSType"},
 | 
			
		||||
    Key = {icon = "🔐", hl = "TSType"},
 | 
			
		||||
    Null = {icon = "NULL", hl = "TSType"},
 | 
			
		||||
    EnumMember = {icon = "", hl = "TSField"},
 | 
			
		||||
    Struct = {icon = "𝓢", hl = "TSType"},
 | 
			
		||||
    Event = {icon = "🗲", hl = "TSType"},
 | 
			
		||||
    Operator = {icon = "+", hl = "TSOperator"},
 | 
			
		||||
    TypeParameter = {icon = "𝙏", hl = "TSParameter"}
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
require("symbols-outline").setup(opts)
 | 
			
		||||
		Reference in New Issue
	
	Block a user