quandoan
This commit is contained in:
parent
d350db2449
commit
ee1be1a29a
71
init.lua
71
init.lua
|
@ -91,7 +91,7 @@ vim.g.mapleader = ' '
|
||||||
vim.g.maplocalleader = ' '
|
vim.g.maplocalleader = ' '
|
||||||
|
|
||||||
-- Set to true if you have a Nerd Font installed and selected in the terminal
|
-- Set to true if you have a Nerd Font installed and selected in the terminal
|
||||||
vim.g.have_nerd_font = false
|
vim.g.have_nerd_font = true
|
||||||
|
|
||||||
-- [[ Setting options ]]
|
-- [[ Setting options ]]
|
||||||
-- See `:help vim.opt`
|
-- See `:help vim.opt`
|
||||||
|
@ -102,7 +102,7 @@ vim.g.have_nerd_font = false
|
||||||
vim.opt.number = true
|
vim.opt.number = true
|
||||||
-- You can also add relative line numbers, to help with jumping.
|
-- You can also add relative line numbers, to help with jumping.
|
||||||
-- Experiment for yourself to see if you like it!
|
-- Experiment for yourself to see if you like it!
|
||||||
-- vim.opt.relativenumber = true
|
vim.opt.relativenumber = true
|
||||||
|
|
||||||
-- Enable mouse mode, can be useful for resizing splits for example!
|
-- Enable mouse mode, can be useful for resizing splits for example!
|
||||||
vim.opt.mouse = 'a'
|
vim.opt.mouse = 'a'
|
||||||
|
@ -275,7 +275,39 @@ require('lazy').setup({
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
'rcarriga/nvim-dap-ui',
|
||||||
|
requires = { 'mfussenegger/nvim-dap' },
|
||||||
|
config = function()
|
||||||
|
local dap, dapui = require 'dap', require 'dapui'
|
||||||
|
|
||||||
|
-- set up with all the default layouts:
|
||||||
|
dapui.setup()
|
||||||
|
|
||||||
|
-- auto-open when session starts, auto-close when it ends:
|
||||||
|
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
|
||||||
|
|
||||||
|
-- optional: a handy toggle keymap
|
||||||
|
vim.keymap.set('n', '<leader>du', dapui.toggle, { desc = ' Toggle DAP UI' })
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'mfussenegger/nvim-dap-python',
|
||||||
|
dependencies = { 'mfussenegger/nvim-dap' },
|
||||||
|
config = function()
|
||||||
|
-- point to the Python that can `import debugpy`
|
||||||
|
local debugpy_path = vim.fn.stdpath 'data' .. '/mason/packages/debugpy/venv/bin/python'
|
||||||
|
require('dap-python').setup(debugpy_path)
|
||||||
|
end,
|
||||||
|
},
|
||||||
-- NOTE: Plugins can also be configured to run Lua code when they are loaded.
|
-- NOTE: Plugins can also be configured to run Lua code when they are loaded.
|
||||||
--
|
--
|
||||||
-- This is often very useful to both group configuration, as well as handle
|
-- This is often very useful to both group configuration, as well as handle
|
||||||
|
@ -665,7 +697,22 @@ require('lazy').setup({
|
||||||
local servers = {
|
local servers = {
|
||||||
-- clangd = {},
|
-- clangd = {},
|
||||||
-- gopls = {},
|
-- gopls = {},
|
||||||
-- pyright = {},
|
pyright = {
|
||||||
|
settings = {
|
||||||
|
python = {
|
||||||
|
analysis = {
|
||||||
|
typeCheckingMode = 'off', -- ✅ disable type errors
|
||||||
|
diagnosticMode = 'openFilesOnly', -- ✅ optional: only open buffers, not full project
|
||||||
|
autoSearchPaths = true,
|
||||||
|
useLibraryCodeForTypes = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
lemminx = {},
|
||||||
|
|
||||||
|
-- ✅ JavaScript/TypeScript LSP (recommended)
|
||||||
|
ts_ls = {},
|
||||||
-- rust_analyzer = {},
|
-- rust_analyzer = {},
|
||||||
-- ... etc. See `:help lspconfig-all` for a list of all the pre-configured LSPs
|
-- ... etc. See `:help lspconfig-all` for a list of all the pre-configured LSPs
|
||||||
--
|
--
|
||||||
|
@ -708,6 +755,8 @@ require('lazy').setup({
|
||||||
local ensure_installed = vim.tbl_keys(servers or {})
|
local ensure_installed = vim.tbl_keys(servers or {})
|
||||||
vim.list_extend(ensure_installed, {
|
vim.list_extend(ensure_installed, {
|
||||||
'stylua', -- Used to format Lua code
|
'stylua', -- Used to format Lua code
|
||||||
|
'prettierd', -- JS/TS formatter
|
||||||
|
'xmlformatter', -- for formatting XML if needed
|
||||||
})
|
})
|
||||||
require('mason-tool-installer').setup { ensure_installed = ensure_installed }
|
require('mason-tool-installer').setup { ensure_installed = ensure_installed }
|
||||||
|
|
||||||
|
@ -965,18 +1014,20 @@ require('lazy').setup({
|
||||||
-- Here are some example plugins that I've included in the Kickstart repository.
|
-- Here are some example plugins that I've included in the Kickstart repository.
|
||||||
-- Uncomment any of the lines below to enable them (you will need to restart nvim).
|
-- Uncomment any of the lines below to enable them (you will need to restart nvim).
|
||||||
--
|
--
|
||||||
-- require 'kickstart.plugins.debug',
|
require 'kickstart.plugins.debug',
|
||||||
-- require 'kickstart.plugins.indent_line',
|
require 'kickstart.plugins.indent_line',
|
||||||
-- require 'kickstart.plugins.lint',
|
require 'kickstart.plugins.lint',
|
||||||
-- require 'kickstart.plugins.autopairs',
|
require 'kickstart.plugins.autopairs',
|
||||||
-- require 'kickstart.plugins.neo-tree',
|
require 'kickstart.plugins.neo-tree',
|
||||||
-- require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps
|
require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps
|
||||||
|
|
||||||
-- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua`
|
-- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua`
|
||||||
-- This is the easiest way to modularize your config.
|
-- This is the easiest way to modularize your config.
|
||||||
--
|
--
|
||||||
-- Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going.
|
-- Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going.
|
||||||
-- { import = 'custom.plugins' },
|
{ import = 'custom.plugins' },
|
||||||
|
{ import = 'custom.keymaps' },
|
||||||
|
{ import = 'custom.setups' },
|
||||||
--
|
--
|
||||||
-- For additional information with loading, sourcing and examples see `:help lazy.nvim-🔌-plugin-spec`
|
-- For additional information with loading, sourcing and examples see `:help lazy.nvim-🔌-plugin-spec`
|
||||||
-- Or use telescope!
|
-- Or use telescope!
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
-- must be after `require("dap-python").setup(debugpy_path)`
|
||||||
|
local dap = require 'dap'
|
||||||
|
local dap_python = require 'dap-python'
|
||||||
|
|
||||||
|
-- ─── General DAP mappings ────────────────────────────────────────────────────
|
||||||
|
vim.keymap.set('n', '<F5>', dap.continue, { desc = '▶ Continue' })
|
||||||
|
vim.keymap.set('n', '<F10>', dap.step_over, { desc = '⤼ Step Over' })
|
||||||
|
vim.keymap.set('n', '<F11>', dap.step_into, { desc = '⤽ Step Into' })
|
||||||
|
vim.keymap.set('n', '<F12>', dap.step_out, { desc = '⤾ Step Out' })
|
||||||
|
|
||||||
|
vim.keymap.set('n', '<leader>db', dap.toggle_breakpoint, { desc = ' Toggle Breakpoint' })
|
||||||
|
vim.keymap.set('n', '<leader>dB', function() -- conditional
|
||||||
|
dap.set_breakpoint(nil, nil, vim.fn.input 'Breakpoint condition: ')
|
||||||
|
end, { desc = ' Set Conditional Breakpoint' })
|
||||||
|
|
||||||
|
vim.keymap.set('n', '<leader>dr', dap.repl.open, { desc = ' Open DAP REPL' })
|
||||||
|
vim.keymap.set('n', '<leader>dl', dap.run_last, { desc = ' Run Last Session' })
|
||||||
|
|
||||||
|
-- Move current line down with J
|
||||||
|
vim.keymap.set('n', 'J', ':m .+1<CR>==', { noremap = true, silent = true })
|
||||||
|
|
||||||
|
-- Move current line up with K
|
||||||
|
vim.keymap.set('n', 'K', ':m .-2<CR>==', { noremap = true, silent = true })
|
||||||
|
|
||||||
|
-- Map <leader>T to toggle terminal
|
||||||
|
vim.keymap.set('n', 'T', function()
|
||||||
|
local Terminal = require('toggleterm.terminal').Terminal
|
||||||
|
local float_term = Terminal:new {
|
||||||
|
direction = 'float',
|
||||||
|
hidden = true, -- ensures it doesn't persist visually
|
||||||
|
}
|
||||||
|
float_term:toggle()
|
||||||
|
end, { desc = 'Toggle Floating Terminal' })
|
||||||
|
|
||||||
|
vim.keymap.set('n', '<leader>bd', function()
|
||||||
|
-- Close all open toggleterm terminals
|
||||||
|
require('toggleterm').toggle_all()
|
||||||
|
|
||||||
|
-- Then close the current buffer
|
||||||
|
vim.cmd 'bdelete!'
|
||||||
|
end, { desc = 'Close buffer and toggleterm' })
|
||||||
|
|
||||||
|
return {}
|
|
@ -2,4 +2,132 @@
|
||||||
-- I promise not to create any merge conflicts in this directory :)
|
-- I promise not to create any merge conflicts in this directory :)
|
||||||
--
|
--
|
||||||
-- See the kickstart.nvim README for more information
|
-- See the kickstart.nvim README for more information
|
||||||
return {}
|
return {
|
||||||
|
{
|
||||||
|
'folke/tokyonight.nvim',
|
||||||
|
lazy = false,
|
||||||
|
priority = 1000,
|
||||||
|
config = function()
|
||||||
|
require('tokyonight').setup {
|
||||||
|
transparent = true,
|
||||||
|
}
|
||||||
|
vim.cmd 'colorscheme tokyonight'
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'akinsho/toggleterm.nvim',
|
||||||
|
tag = '*',
|
||||||
|
config = function()
|
||||||
|
require('toggleterm').setup()
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'mfussenegger/nvim-dap',
|
||||||
|
dependencies = {
|
||||||
|
'rcarriga/nvim-dap-ui',
|
||||||
|
'mfussenegger/nvim-dap-python',
|
||||||
|
},
|
||||||
|
config = function()
|
||||||
|
local dap = require 'dap'
|
||||||
|
local dap_python = require 'dap-python'
|
||||||
|
local dapui = require 'dapui'
|
||||||
|
|
||||||
|
local debugpy_path = vim.fn.stdpath 'data' .. '/mason/packages/debugpy/venv/bin/python'
|
||||||
|
dap_python.setup(debugpy_path)
|
||||||
|
|
||||||
|
dap.configurations.python = dap.configurations.python or {}
|
||||||
|
-- Ta-yoong project debug config
|
||||||
|
table.insert(dap.configurations.python, {
|
||||||
|
name = 'Odoo Tayoong',
|
||||||
|
type = 'python',
|
||||||
|
request = 'launch',
|
||||||
|
program = '/Users/quandoan/Desktop/odoo-18.0/odoo-bin',
|
||||||
|
args = {
|
||||||
|
'-c',
|
||||||
|
'/Users/quandoan/Desktop/odoo-18.0/debian/odoo-tayoong.conf',
|
||||||
|
'-u',
|
||||||
|
'a1_einvoice_to_gov',
|
||||||
|
'--xmlrpc-port',
|
||||||
|
'8066',
|
||||||
|
},
|
||||||
|
pythonPath = function()
|
||||||
|
return '/usr/local/bin/python3.12'
|
||||||
|
end,
|
||||||
|
cwd = vim.fn.getcwd(),
|
||||||
|
env = { PYTHONUNBUFFERED = '1' },
|
||||||
|
console = 'integratedTerminal',
|
||||||
|
})
|
||||||
|
-- odoo 13 debug
|
||||||
|
table.insert(dap.configurations.python, {
|
||||||
|
name = 'Odoo 13',
|
||||||
|
type = 'python',
|
||||||
|
request = 'launch',
|
||||||
|
program = '/Users/quandoan/Desktop/odoo-13.0/odoo-bin',
|
||||||
|
args = {
|
||||||
|
'-c',
|
||||||
|
'/Users/quandoan/Desktop/odoo-13.0/debian/odoo.conf',
|
||||||
|
'-u',
|
||||||
|
'a1_einvoice_to_gov',
|
||||||
|
'--xmlrpc-port',
|
||||||
|
'8066',
|
||||||
|
},
|
||||||
|
pythonPath = function()
|
||||||
|
return '/usr/local/bin/python3.7'
|
||||||
|
end,
|
||||||
|
cwd = vim.fn.getcwd(),
|
||||||
|
env = { PYTHONUNBUFFERED = '1' },
|
||||||
|
console = 'integratedTerminal',
|
||||||
|
})
|
||||||
|
|
||||||
|
-- UI signs
|
||||||
|
vim.fn.sign_define('DapBreakpoint', { text = 'B', texthl = 'DapBreakpoint' })
|
||||||
|
vim.fn.sign_define('DapBreakpointCondition', { text = 'C', texthl = 'DapBreakpointCondition' })
|
||||||
|
vim.fn.sign_define('DapStopped', { text = '>', texthl = 'DapStopped', linehl = 'CursorLine' })
|
||||||
|
|
||||||
|
vim.cmd [[
|
||||||
|
highlight DapBreakpoint guifg=#FFA500 guibg=#1F1F28
|
||||||
|
highlight DapBreakpointCondition guifg=#FFA500 guibg=#1F1F28
|
||||||
|
highlight DapStopped guifg=#FFA500 guibg=#1F1F28
|
||||||
|
]]
|
||||||
|
|
||||||
|
dapui.setup {
|
||||||
|
layouts = {
|
||||||
|
{
|
||||||
|
elements = {
|
||||||
|
{ id = 'repl', size = 0.5 },
|
||||||
|
{ id = 'console', size = 0.5 },
|
||||||
|
},
|
||||||
|
size = 0.15,
|
||||||
|
position = 'left',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
elements = {
|
||||||
|
{ id = 'scopes', size = 1.0 },
|
||||||
|
},
|
||||||
|
size = 0.85,
|
||||||
|
position = 'bottom',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
-- Ensure toggleterm is loaded
|
||||||
|
'akinsho/toggleterm.nvim',
|
||||||
|
keys = {
|
||||||
|
{
|
||||||
|
'<leader>lg',
|
||||||
|
function()
|
||||||
|
local Terminal = require('toggleterm.terminal').Terminal
|
||||||
|
local lazygit = Terminal:new {
|
||||||
|
cmd = 'lazygit',
|
||||||
|
direction = 'float',
|
||||||
|
hidden = true,
|
||||||
|
}
|
||||||
|
lazygit:toggle()
|
||||||
|
end,
|
||||||
|
desc = 'Lazygit (float)',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
-- Then load your custom setup scripts
|
||||||
|
require 'custom.setups.lsp'
|
||||||
|
require 'custom.setups.term'
|
|
@ -0,0 +1,12 @@
|
||||||
|
require('lspconfig').pyright.setup {
|
||||||
|
settings = {
|
||||||
|
python = {
|
||||||
|
analysis = {
|
||||||
|
typeCheckingMode = 'off', -- disables type checking
|
||||||
|
diagnosticMode = 'openFilesOnly', -- optional: only analyze open files
|
||||||
|
autoSearchPaths = true,
|
||||||
|
useLibraryCodeForTypes = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
require('toggleterm').setup {
|
||||||
|
direction = 'float',
|
||||||
|
float_opts = {
|
||||||
|
border = 'curved',
|
||||||
|
width = 100,
|
||||||
|
height = 30,
|
||||||
|
winblend = 0, -- optional: transparency
|
||||||
|
-- Omit row/col so it's automatically centered
|
||||||
|
},
|
||||||
|
}
|
Loading…
Reference in New Issue