mirror of
https://github.com/jdhao/nvim-config.git
synced 2025-06-08 14:14:33 +02:00
Compare commits
10 Commits
12b0ff02b6
...
v0.10.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3040fa7969 | ||
|
|
b9cf3cc6ed | ||
|
|
154cde3d71 | ||
|
|
81f64ed32e | ||
|
|
db380ca7a7 | ||
|
|
51f81093da | ||
|
|
a9fc298063 | ||
|
|
9071e045eb | ||
|
|
fa79647a63 | ||
|
|
4b4ff5f549 |
35
init.lua
35
init.lua
@@ -16,25 +16,18 @@ local utils = require("utils")
|
||||
local expected_version = "0.10.1"
|
||||
utils.is_compatible_version(expected_version)
|
||||
|
||||
local core_conf_files = {
|
||||
"globals.lua", -- some global settings
|
||||
"options.vim", -- setting options in nvim
|
||||
"custom-autocmd.lua", -- various autocommands
|
||||
"mappings.lua", -- all the user-defined mappings
|
||||
"plugins.vim", -- all the plugins installed and their configurations
|
||||
"colorschemes.lua", -- colorscheme settings
|
||||
}
|
||||
local config_dir = vim.fn.stdpath("config")
|
||||
---@cast config_dir string
|
||||
|
||||
local viml_conf_dir = vim.fn.stdpath("config") .. "/viml_conf"
|
||||
-- source all the core config files
|
||||
for _, file_name in ipairs(core_conf_files) do
|
||||
if vim.endswith(file_name, 'vim') then
|
||||
local path = string.format("%s/%s", viml_conf_dir, file_name)
|
||||
local source_cmd = "source " .. path
|
||||
vim.cmd(source_cmd)
|
||||
else
|
||||
local module_name, _ = string.gsub(file_name, "%.lua", "")
|
||||
package.loaded[module_name] = nil
|
||||
require(module_name)
|
||||
end
|
||||
end
|
||||
-- some global settings
|
||||
require("globals")
|
||||
-- setting options in nvim
|
||||
vim.cmd("source " .. vim.fs.joinpath(config_dir, "viml_conf/options.vim"))
|
||||
-- various autocommands
|
||||
require("custom-autocmd")
|
||||
-- all the user-defined mappings
|
||||
require("mappings")
|
||||
-- all the plugins installed and their configurations
|
||||
vim.cmd("source ".. vim.fs.joinpath(config_dir, "viml_conf/plugins.vim"))
|
||||
-- colorscheme settings
|
||||
require("colorschemes")
|
||||
|
||||
@@ -35,33 +35,48 @@ keymap.set("n", "N", "", {
|
||||
end,
|
||||
})
|
||||
|
||||
local no_word_under_cursor = function()
|
||||
local check_cursor_word = function()
|
||||
local cursor_word = vim.fn.expand("<cword>")
|
||||
|
||||
local result = cursor_word == ""
|
||||
if result then
|
||||
local msg = "E348: No string under cursor"
|
||||
api.nvim_err_writeln(msg)
|
||||
end
|
||||
|
||||
return result
|
||||
return result, cursor_word
|
||||
end
|
||||
|
||||
keymap.set("n", "*", "", {
|
||||
callback = function()
|
||||
if no_word_under_cursor() then
|
||||
local cursor_word_empty, cursor_word = check_cursor_word()
|
||||
if cursor_word_empty then
|
||||
return
|
||||
end
|
||||
vim.fn.execute("normal! *N")
|
||||
|
||||
local cmd = string.format([[normal! /\v<%s>]], cursor_word)
|
||||
|
||||
-- In order to say that we are pressing Enter key, instead of typing literally the character,
|
||||
-- we need to replace special notation with their internal representation.
|
||||
local escaped_enter = vim.api.nvim_replace_termcodes("<CR>", true, false, true)
|
||||
|
||||
-- character `N` is used to keep the cursor when pressing `*`
|
||||
local full_cmd = cmd .. escaped_enter .. "N"
|
||||
vim.fn.execute(full_cmd)
|
||||
hlslens.start()
|
||||
end,
|
||||
})
|
||||
keymap.set("n", "#", "", {
|
||||
callback = function()
|
||||
if no_word_under_cursor() then
|
||||
local cursor_word_empty, cursor_word = check_cursor_word()
|
||||
if cursor_word_empty then
|
||||
return
|
||||
end
|
||||
vim.fn.execute("normal! #N")
|
||||
|
||||
local cmd = string.format([[normal! ?\v<%s>]], cursor_word)
|
||||
local escaped_enter = vim.api.nvim_replace_termcodes("<CR>", true, false, true)
|
||||
|
||||
local full_cmd = cmd .. escaped_enter .. "N"
|
||||
vim.fn.execute(full_cmd)
|
||||
hlslens.start()
|
||||
end,
|
||||
})
|
||||
|
||||
4
lua/config/live-command.lua
Normal file
4
lua/config/live-command.lua
Normal file
@@ -0,0 +1,4 @@
|
||||
require("live-command").setup {
|
||||
enable_highlighting = true,
|
||||
inline_highlighting = true,
|
||||
}
|
||||
@@ -43,7 +43,7 @@ local custom_attach = function(client, bufnr)
|
||||
map("n", "<space>wa", vim.lsp.buf.add_workspace_folder, { desc = "add workspace folder" })
|
||||
map("n", "<space>wr", vim.lsp.buf.remove_workspace_folder, { desc = "remove workspace folder" })
|
||||
map("n", "<space>wl", function()
|
||||
inspect(vim.lsp.buf.list_workspace_folders())
|
||||
vim.print(vim.lsp.buf.list_workspace_folders())
|
||||
end, { desc = "list workspace folder" })
|
||||
|
||||
-- Set some key bindings conditional on server capabilities
|
||||
|
||||
@@ -163,8 +163,16 @@ api.nvim_create_autocmd("FileType", {
|
||||
-- vim.print(string.format("mark_pos: %s", vim.inspect(mark_pos)))
|
||||
-- it seems that without vim.schedule, the cursor position can not be set correctly
|
||||
vim.schedule(function()
|
||||
api.nvim_win_set_cursor(0, mark_pos)
|
||||
local status, result = pcall(api.nvim_win_set_cursor, 0, mark_pos)
|
||||
if not status then
|
||||
api.nvim_err_writeln(string.format("Failed to resume cursor position. Context %s, error: %s",
|
||||
vim.inspect(ev), result))
|
||||
end
|
||||
end)
|
||||
-- the following two ways also seem to work,
|
||||
-- ref: https://www.reddit.com/r/neovim/comments/104lc26/how_can_i_press_escape_key_using_lua/
|
||||
-- vim.api.nvim_feedkeys("g`\"", "n", true)
|
||||
-- vim.fn.execute("normal! g`\"")
|
||||
end
|
||||
end,
|
||||
})
|
||||
@@ -257,7 +265,7 @@ api.nvim_create_autocmd("BufReadPre", {
|
||||
if fn.getfsize(f) > file_size_limit or fn.getfsize(f) == -2 then
|
||||
vim.o.eventignore = "all"
|
||||
-- turning off relative number helps a lot
|
||||
vim.bo.relativenumber = false
|
||||
vim.wo.relativenumber = false
|
||||
|
||||
vim.bo.swapfile = false
|
||||
vim.bo.bufhidden = "unload"
|
||||
|
||||
@@ -3,11 +3,6 @@ local api = vim.api
|
||||
|
||||
local utils = require('utils')
|
||||
|
||||
-- Inspect something
|
||||
function _G.inspect(item)
|
||||
vim.print(item)
|
||||
end
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- custom variables --
|
||||
------------------------------------------------------------------------
|
||||
|
||||
@@ -23,7 +23,8 @@ end
|
||||
local plugin_specs = {
|
||||
-- auto-completion engine
|
||||
{
|
||||
"hrsh7th/nvim-cmp",
|
||||
"iguanacucumber/magazine.nvim",
|
||||
name = "nvim-cmp",
|
||||
-- event = 'InsertEnter',
|
||||
event = "VeryLazy",
|
||||
dependencies = {
|
||||
@@ -38,7 +39,6 @@ local plugin_specs = {
|
||||
require("config.nvim-cmp")
|
||||
end,
|
||||
},
|
||||
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
event = { "BufRead", "BufNewFile" },
|
||||
@@ -563,6 +563,16 @@ local plugin_specs = {
|
||||
require("copilot").setup {}
|
||||
end,
|
||||
},
|
||||
{
|
||||
"smjonas/live-command.nvim",
|
||||
-- live-command supports semantic versioning via Git tags
|
||||
-- tag = "2.*",
|
||||
cmd = "Preview",
|
||||
config = function()
|
||||
require("config.live-command")
|
||||
end,
|
||||
event = "VeryLazy",
|
||||
},
|
||||
}
|
||||
|
||||
require("lazy").setup {
|
||||
|
||||
Reference in New Issue
Block a user