feat: first usable version

This commit is contained in:
Venderbad 2024-11-26 15:07:04 +08:00
parent 8d1ef972bc
commit 0179119e20
No known key found for this signature in database
3 changed files with 178 additions and 16 deletions

111
init.lua
View File

@ -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`
@ -175,11 +175,13 @@ vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, { desc = 'Open diagn
-- or just use <C-\><C-n> to exit terminal mode -- or just use <C-\><C-n> to exit terminal mode
vim.keymap.set('t', '<Esc><Esc>', '<C-\\><C-n>', { desc = 'Exit terminal mode' }) vim.keymap.set('t', '<Esc><Esc>', '<C-\\><C-n>', { desc = 'Exit terminal mode' })
vim.keymap.set('i', 'kj', '<Esc>', { noremap = true, silent = true })
-- TIP: Disable arrow keys in normal mode -- TIP: Disable arrow keys in normal mode
-- vim.keymap.set('n', '<left>', '<cmd>echo "Use h to move!!"<CR>') vim.keymap.set('n', '<left>', '<cmd>echo "Use h to move!!"<CR>')
-- vim.keymap.set('n', '<right>', '<cmd>echo "Use l to move!!"<CR>') vim.keymap.set('n', '<right>', '<cmd>echo "Use l to move!!"<CR>')
-- vim.keymap.set('n', '<up>', '<cmd>echo "Use k to move!!"<CR>') vim.keymap.set('n', '<up>', '<cmd>echo "Use k to move!!"<CR>')
-- vim.keymap.set('n', '<down>', '<cmd>echo "Use j to move!!"<CR>') vim.keymap.set('n', '<down>', '<cmd>echo "Use j to move!!"<CR>')
-- Keybinds to make split navigation easier. -- Keybinds to make split navigation easier.
-- Use CTRL+<hjkl> to switch between windows -- Use CTRL+<hjkl> to switch between windows
@ -615,10 +617,70 @@ require('lazy').setup({
-- - settings (table): Override the default settings passed when initializing the server. -- - settings (table): Override the default settings passed when initializing the server.
-- For example, to see the options for `lua_ls`, you could go to: https://luals.github.io/wiki/settings/ -- For example, to see the options for `lua_ls`, you could go to: https://luals.github.io/wiki/settings/
local servers = { local servers = {
-- clangd = {}, clangd = {},
-- gopls = {}, gopls = {},
-- pyright = {}, -- pyright = {}, -- too heavy and slow :<
-- rust_analyzer = {}, rust_analyzer = {},
-- pylsp with ruff ext is real GOAT :>
pylsp = {
cmd = { 'pylsp', '-vvv', '--log-file', '/tmp/lsp.log' },
settings = {
pylsp = {
plugins = {
-- Quite useful
rope_autoimport = {
enabled = true,
completions = {
enabled = false,
},
code_actions = {
enabled = true,
},
},
-- Plugin conflict resolving for pylsp_rope plugin
rope_rename = {
enabled = false, -- using pylsp_rope's rename instead
},
jedi_rename = {
enabled = false, -- using pylsp_rope's rename instead
},
-- Advanced impl of renaming using rope
pylsp_rope = {
enabled = true,
rename = true,
},
ruff = {
enabled = true, -- Enable the plugin
formatEnabled = true, -- Enable formatting using ruffs formatter
-- executable = '~/.rye/tools/ruff/bin/ruff', -- Custom path to ruff
-- config = '~/.rye/tools/ruff/bin/.pylsp_ruff_custom_global.toml', -- Custom config for ruff to use
extendSelect = { 'I' }, -- Rules that are additionally used by ruff
extendIgnore = { 'C90' }, -- Rules that are additionally ignored by ruff
format = { 'I' }, -- Rules that are marked as fixable by ruff that should be fixed when running textDocument/formatting
severities = { ['D212'] = 'I' }, -- Optional table of rules where a custom severity is desired
unsafeFixes = false, -- Whether or not to offer unsafe fixes as code actions. Ignored with the "Fix All" action
-- -- Rules that are ignored when a pyproject.toml or ruff.toml is present:
-- lineLength = 88, -- Line length to pass to ruff checking and formatting
-- exclude = { '__about__.py' }, -- Files to be excluded by ruff checking
-- select = { 'F' }, -- Rules to be enabled by ruff
-- ignore = { 'D210' }, -- Rules to be ignored by ruff
perFileIgnores = { ['__init__.py'] = 'CPY001' }, -- Rules that should be ignored for specific files
preview = true, -- Whether to enable the preview style linting and formatting.
-- targetVersion = 'py310', -- The minimum python version to target (applies for both linting and formatting).
},
pylsp_mypy = {
enabled = true,
exclude = { 'tests/*', 'leetcode/*' },
},
},
},
},
},
-- ... 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
-- --
-- Some languages (like typescript) have entire language plugins that can be useful: -- Some languages (like typescript) have entire language plugins that can be useful:
@ -657,6 +719,11 @@ 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', -- formatter
'delve', -- Golang DAP debugger
'markdownlint-cli2',
'npm-groovy-lint',
'vale',
}) })
require('mason-tool-installer').setup { ensure_installed = ensure_installed } require('mason-tool-installer').setup { ensure_installed = ensure_installed }
@ -890,6 +957,11 @@ require('lazy').setup({
-- ... and there is more! -- ... and there is more!
-- Check out: https://github.com/echasnovski/mini.nvim -- Check out: https://github.com/echasnovski/mini.nvim
-- Lyu: activate mini.animate
if not vim.g.neovide then
require('mini.animate').setup()
end
end, end,
}, },
{ -- Highlight, edit, and navigate code { -- Highlight, edit, and navigate code
@ -927,18 +999,18 @@ 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' },
-- --
-- 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!
@ -966,5 +1038,12 @@ require('lazy').setup({
}, },
}) })
-- ADDED Manually by Lyu
---- python provider set to pyenv venv interpreter 20240927
vim.g.python3_host_prog = '~/.rye/tools/pynvim/bin/python3'
-- avante.nvim: views can only be fully collapsed with the global statusline
vim.opt.laststatus = 3
-- END ADDED Manually
-- The line beneath this is called `modeline`. See `:help modeline` -- The line beneath this is called `modeline`. See `:help modeline`
-- vim: ts=2 sts=2 sw=2 et -- vim: ts=2 sts=2 sw=2 et

View File

@ -0,0 +1,56 @@
return {
'yetone/avante.nvim',
event = 'VeryLazy',
lazy = false,
version = false, -- set this if you want to always pull the latest change
opts = {
-- add any opts here
-- Lyu
provider = 'openai',
openai = {
endpoint = 'https://aihubmix.com/v1',
model = 'claude-3-5-haiku-20241022',
temperature = 0,
max_tokens = 4096,
api_key_name = 'cmd:security find-generic-password -a avante.nvim -s anthropic-api-key -w', -- the shell command must prefixed with `^cmd:(.*)`
},
},
-- if you want to build from source then do `make BUILD_FROM_SOURCE=true`
build = 'make',
-- build = "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false" -- for windows
dependencies = {
'nvim-treesitter/nvim-treesitter',
'stevearc/dressing.nvim',
'nvim-lua/plenary.nvim',
'MunifTanjim/nui.nvim',
--- The below dependencies are optional,
'nvim-tree/nvim-web-devicons', -- or echasnovski/mini.icons
'zbirenbaum/copilot.lua', -- for providers='copilot'
{
-- support for image pasting
'HakonHarnes/img-clip.nvim',
event = 'VeryLazy',
opts = {
-- recommended settings
default = {
embed_image_as_base64 = false,
prompt_for_file_name = false,
drag_and_drop = {
insert_mode = true,
},
-- required for Windows users
use_absolute_path = true,
},
},
},
{
-- Make sure to set this up properly if you have lazy=true
'MeanderingProgrammer/render-markdown.nvim',
opts = {
file_types = { 'markdown', 'Avante' },
},
ft = { 'markdown', 'Avante' },
},
},
}

View File

@ -0,0 +1,27 @@
local leet_arg = 'leetcode.nvim'
return {
'kawre/leetcode.nvim',
build = ':TSUpdate html',
dependencies = {
'nvim-telescope/telescope.nvim',
'nvim-lua/plenary.nvim', -- required by telescope
'MunifTanjim/nui.nvim',
-- optional
'nvim-treesitter/nvim-treesitter',
'rcarriga/nvim-notify',
'nvim-tree/nvim-web-devicons',
},
lazy = leet_arg ~= vim.fn.argv()[1],
opts = {
-- configuration goes here
opts = { arg = leet_arg },
lang = 'python3',
-- injector = {
-- ['python3'] = {
-- before = true,
-- },
-- },
},
}