From cbe4cfe4feab60d155ba180b2546fc3a62ee5017 Mon Sep 17 00:00:00 2001 From: Zynh0722 Date: Tue, 7 Nov 2023 01:29:53 -0800 Subject: [PATCH] catching up --- init.lua | 4 + lazyvim.json | 9 +++ lua/config/lazy.lua | 4 + lua/plugins/conform.lua | 8 ++ lua/plugins/lspconfig.lua | 75 ++++++++--------- lua/plugins/obsession.lua | 6 ++ lua/plugins/obsidian.lua | 124 +++++++++++++++++++++++++++++ lua/plugins/quickfix-reflector.lua | 6 ++ lua/plugins/treesitter.lua | 25 ++++++ 9 files changed, 224 insertions(+), 37 deletions(-) create mode 100644 lazyvim.json create mode 100644 lua/plugins/conform.lua create mode 100644 lua/plugins/obsession.lua create mode 100644 lua/plugins/obsidian.lua create mode 100644 lua/plugins/quickfix-reflector.lua diff --git a/init.lua b/init.lua index 2514f9e..33b0d09 100644 --- a/init.lua +++ b/init.lua @@ -1,2 +1,6 @@ -- bootstrap lazy.nvim, LazyVim and your plugins require("config.lazy") + +if vim.loader then + vim.loader.enable() +end diff --git a/lazyvim.json b/lazyvim.json new file mode 100644 index 0000000..ff6a139 --- /dev/null +++ b/lazyvim.json @@ -0,0 +1,9 @@ +{ + "extras": [ + + ], + "news": { + "NEWS.md": "2123" + }, + "version": 2 +} \ No newline at end of file diff --git a/lua/config/lazy.lua b/lua/config/lazy.lua index 283c69b..211e5b1 100644 --- a/lua/config/lazy.lua +++ b/lua/config/lazy.lua @@ -15,6 +15,10 @@ require("lazy").setup({ { import = "lazyvim.plugins.extras.lang.tailwind" }, -- { import = "lazyvim.plugins.extras.lang.clangd" }, { import = "lazyvim.plugins.extras.lang.typescript" }, + { import = "lazyvim.plugins.extras.lang.rust" }, + -- { import = "lazyvim.plugins.extras.formatting.prettier" }, + { import = "lazyvim.plugins.extras.editor.aerial" }, + { import = "lazyvim.plugins.extras.lang.tailwind" }, { import = "lazyvim.plugins.extras.ui.mini-animate" }, -- import/override with your plugins { import = "plugins" }, diff --git a/lua/plugins/conform.lua b/lua/plugins/conform.lua new file mode 100644 index 0000000..ab5add3 --- /dev/null +++ b/lua/plugins/conform.lua @@ -0,0 +1,8 @@ +return { + "stevearc/conform.nvim", + opts = { + formatters_by_ft = { + sql = { "sql_formatter" }, + }, + }, +} diff --git a/lua/plugins/lspconfig.lua b/lua/plugins/lspconfig.lua index 1356130..c14a1e1 100644 --- a/lua/plugins/lspconfig.lua +++ b/lua/plugins/lspconfig.lua @@ -1,37 +1,38 @@ -return { - { - "neovim/nvim-lspconfig", - ---@class PluginLspOpts - opts = { - ---@type lspconfig.options - servers = { - -- pyright will be automatically installed with mason and loaded with lspconfig - rust_analyzer = { - mason = false, - settings = { - ["rust-analyzer"] = { - imports = { - granularity = { - group = "module", - }, - }, - cargo = { - buildScripts = { - enable = false, - }, - }, - files = { - excludeDirs = { - "pe-template", - }, - }, - procMacro = { - enable = true, - }, - }, - }, - }, - }, - }, - }, -} +return {} +-- return { +-- { +-- "neovim/nvim-lspconfig", +-- ---@class PluginLspOpts +-- opts = { +-- ---@type lspconfig.options +-- servers = { +-- -- pyright will be automatically installed with mason and loaded with lspconfig +-- rust_analyzer = { +-- mason = false, +-- settings = { +-- ["rust-analyzer"] = { +-- imports = { +-- granularity = { +-- group = "module", +-- }, +-- }, +-- cargo = { +-- buildScripts = { +-- enable = false, +-- }, +-- }, +-- files = { +-- excludeDirs = { +-- "pe-template", +-- }, +-- }, +-- procMacro = { +-- enable = true, +-- }, +-- }, +-- }, +-- }, +-- }, +-- }, +-- }, +-- } diff --git a/lua/plugins/obsession.lua b/lua/plugins/obsession.lua new file mode 100644 index 0000000..89b120d --- /dev/null +++ b/lua/plugins/obsession.lua @@ -0,0 +1,6 @@ +return { + { + "tpope/vim-obsession", + event = "VimEnter", + }, +} diff --git a/lua/plugins/obsidian.lua b/lua/plugins/obsidian.lua new file mode 100644 index 0000000..9d55ebb --- /dev/null +++ b/lua/plugins/obsidian.lua @@ -0,0 +1,124 @@ +return { + "epwalsh/obsidian.nvim", + lazy = true, + event = { "BufReadPre /Users/zynh/Documents/obsidian/General/**.md" }, + -- If you want to use the home shortcut '~' here you need to call 'vim.fn.expand': + -- event = { "BufReadPre " .. vim.fn.expand "~" .. "/my-vault/**.md" }, + dependencies = { + -- Required. + "nvim-lua/plenary.nvim", + + -- Optional, for completion. + "hrsh7th/nvim-cmp", + + -- Optional, for search and quick-switch functionality. + "nvim-telescope/telescope.nvim", + + -- Optional, an alternative to telescope for search and quick-switch functionality. + -- "ibhagwan/fzf-lua" + + -- Optional, another alternative to telescope for search and quick-switch functionality. + -- "junegunn/fzf", + -- "junegunn/fzf.vim" + + -- Optional, alternative to nvim-treesitter for syntax highlighting. + -- "godlygeek/tabular", + -- "preservim/vim-markdown", + }, + opts = { + dir = "/Users/zynh/Documents/obsidian/General", -- no need to call 'vim.fn.expand' here + + -- Optional, if you keep notes in a specific subdirectory of your vault. + -- notes_subdir = "notes", + + daily_notes = { + -- Optional, if you keep daily notes in a separate directory. + folder = "01 - Dailies", + -- Optional, if you want to change the date format for daily notes. + date_format = "%d-%b-%Y", + }, + + -- Optional, completion. + completion = { + nvim_cmp = true, -- if using nvim-cmp, otherwise set to false + }, + + -- Optional, customize how names/IDs for new notes are created. + -- note_id_func = function(title) + -- -- Create note IDs in a Zettelkasten format with a timestamp and a suffix. + -- -- In this case a note with the title 'My new note' will given an ID that looks + -- -- like '1657296016-my-new-note', and therefore the file name '1657296016-my-new-note.md' + -- local suffix = "" + -- if title ~= nil then + -- -- If title is given, transform it into valid file name. + -- suffix = title:gsub(" ", "-"):gsub("[^A-Za-z0-9-]", ""):lower() + -- else + -- -- If title is nil, just add 4 random uppercase letters to the suffix. + -- for _ = 1, 4 do + -- suffix = suffix .. string.char(math.random(65, 90)) + -- end + -- end + -- return tostring(os.time()) .. "-" .. suffix + -- end, + -- + -- -- Optional, set to true if you don't want Obsidian to manage frontmatter. + -- disable_frontmatter = false, + -- + -- -- Optional, alternatively you can customize the frontmatter data. + -- note_frontmatter_func = function(note) + -- -- This is equivalent to the default frontmatter function. + -- local out = { id = note.id, aliases = note.aliases, tags = note.tags } + -- -- `note.metadata` contains any manually added fields in the frontmatter. + -- -- So here we just make sure those fields are kept in the frontmatter. + -- if note.metadata ~= nil and require("obsidian").util.table_length(note.metadata) > 0 then + -- for k, v in pairs(note.metadata) do + -- out[k] = v + -- end + -- end + -- return out + -- end, + + -- Optional, for templates (see below). + templates = { + subdir = "08 - Templates", + date_format = "%d-%b-%Y", + time_format = "%H:%M", + }, + + -- Optional, by default when you use `:ObsidianFollowLink` on a link to an external + -- URL it will be ignored but you can customize this behavior here. + follow_url_func = function(url) + -- Open the URL in the default web browser. + vim.fn.jobstart({ "open", url }) -- Mac OS + -- vim.fn.jobstart({"xdg-open", url}) -- linux + end, + + -- Optional, set to true if you use the Obsidian Advanced URI plugin. + -- https://github.com/Vinzent03/obsidian-advanced-uri + -- use_advanced_uri = true, + + -- Optional, set to true to force ':ObsidianOpen' to bring the app to the foreground. + open_app_foreground = false, + + -- Optional, by default commands like `:ObsidianSearch` will attempt to use + -- telescope.nvim, fzf-lua, and fzf.nvim (in that order), and use the + -- first one they find. By setting this option to your preferred + -- finder you can attempt it first. Note that if the specified finder + -- is not installed, or if it the command does not support it, the + -- remaining finders will be attempted in the original order. + finder = "telescope.nvim", + }, + config = function(_, opts) + require("obsidian").setup(opts) + + -- Optional, override the 'gf' keymap to utilize Obsidian's search functionality. + -- see also: 'follow_url_func' config option above. + vim.keymap.set("n", "gf", function() + if require("obsidian").util.cursor_on_markdown_link() then + return "ObsidianFollowLink" + else + return "gf" + end + end, { noremap = false, expr = true }) + end, +} diff --git a/lua/plugins/quickfix-reflector.lua b/lua/plugins/quickfix-reflector.lua new file mode 100644 index 0000000..0f8792a --- /dev/null +++ b/lua/plugins/quickfix-reflector.lua @@ -0,0 +1,6 @@ +return { + { + "stefandtw/quickfix-reflector.vim", + event = "VeryLazy", + }, +} diff --git a/lua/plugins/treesitter.lua b/lua/plugins/treesitter.lua index b348d1a..6fe50f6 100644 --- a/lua/plugins/treesitter.lua +++ b/lua/plugins/treesitter.lua @@ -9,6 +9,31 @@ return { "rust", }) end, + config = function(_, opts) + if type(opts.ensure_installed) == "table" then + ---@type table + local added = {} + opts.ensure_installed = vim.tbl_filter(function(lang) + if added[lang] then + return false + end + added[lang] = true + return true + end, opts.ensure_installed) + end + require("nvim-treesitter.configs").setup(opts) + + local parser_config = require("nvim-treesitter.parsers").get_parser_configs() + + parser_config.nu = { + install_info = { + url = "https://github.com/nushell/tree-sitter-nu", + files = { "src/parser.c" }, + branch = "main", + }, + filetype = "nu", + } + end, }, { "nvim-treesitter/playground",