refactor: recreate folder structure

pull/98/head
fm39hz-laptop 2024-07-04 14:22:44 +07:00
parent 8f66d3bac3
commit dcce817768
42 changed files with 657 additions and 845 deletions

View File

@ -1,9 +1,35 @@
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
local function generate_import_specs()
local specs = {}
local function add_specs_from_dir(path)
local uv = vim.loop
local stats = uv.fs_readdir(uv.fs_opendir(vim.fn.stdpath("config") .. "/" .. "lua" .. "/" .. path, nil, 1000))
if not stats then
return
end
for _, stat in ipairs(stats) do
-- print(stat.name)
if stat.type == "directory" then
local new_import_path = path .. "/" .. stat.name
table.insert(specs, { import = new_import_path:gsub("/", ".") })
add_specs_from_dir(new_import_path)
elseif stat.name == "init.lua" then
table.remove(specs) -- removes last element
end
end
end
add_specs_from_dir("plugins")
return specs
end
if not (vim.uv or vim.loop).fs_stat(lazypath) then
-- bootstrap lazy.nvim
-- stylua: ignore
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath })
-- bootstrap lazy.nvim
-- stylua: ignore
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable",
lazypath })
end
---@diagnostic disable-next-line: undefined-field
vim.opt.rtp:prepend(vim.env.LAZY or lazypath)
@ -14,7 +40,7 @@ require("lazy").setup({
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
-- import any extras modules here
-- import/override with your plugins
{ import = "plugins" },
generate_import_specs("plugins"),
},
defaults = {
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.

View File

@ -0,0 +1,10 @@
return {
{
"tris203/precognition.nvim",
cmd = "Precognition toggle",
opts = {
startVisible = true,
showBlankVirtLine = false,
},
},
}

View File

@ -1,9 +0,0 @@
return {
{
"kawre/leetcode.nvim",
cmd = "Leet",
opts = {
non_standalone = true,
},
},
}

View File

@ -1,30 +0,0 @@
return {
{
"jbyuki/instant.nvim",
cmd = {
"InstantStartServer",
"InstantStopServer",
},
},
{
"mistricky/codesnap.nvim",
build = "make",
cmd = {
"CodeSnap",
"CodeSnapSave",
},
opts = {
save_path = "~/Pictures/ScreenShot/",
has_line_number = true,
watermark = "• FM39hz •",
bg_color = "#535c68",
code_font_family = "JetbrainsMono Nerd Font",
},
},
{
"miversen33/netman.nvim",
cmd = {
"Neotree remote",
},
},
}

View File

@ -0,0 +1,17 @@
return {
{
"mistricky/codesnap.nvim",
build = "make",
cmd = {
"CodeSnap",
"CodeSnapSave",
},
opts = {
save_path = "~/Pictures/ScreenShot/",
has_line_number = true,
watermark = "• FM39hz •",
bg_color = "#535c68",
code_font_family = "JetbrainsMono Nerd Font",
},
},
}

View File

@ -0,0 +1,7 @@
return {
"kawre/leetcode.nvim",
cmd = "Leet",
opts = {
non_standalone = true,
},
}

View File

@ -0,0 +1,26 @@
return {
{
"jbyuki/instant.nvim",
cmd = {
"InstantStartServer",
"InstantStopServer",
},
},
{
"miversen33/netman.nvim",
cmd = {
"Neotree remote",
},
},
{
"rmagatti/auto-session",
event = "VimEnter",
opts = {
auto_session_enabled = true,
auto_save_enabled = true,
auto_restore_enabled = true,
auto_session_use_git_branch = true,
pre_save_cmds = { "BDelete! nameless", "BDelete! hidden", "BDelete glob=yode*", "cclose" },
},
},
}

View File

@ -1,116 +0,0 @@
require("dap.ext.vscode").load_launchjs()
return {
-- Overall
{
"Zeioth/compiler.nvim",
cmd = { "CompilerOpen", "CompilerToggleResults", "CompilerRedo" },
dependencies = {
"stevearc/overseer.nvim",
},
opts = {},
},
{
"stevearc/overseer.nvim",
cmd = { "CompilerOpen", "CompilerToggleResults", "CompilerRedo", "OverseerRun" },
opts = {
task_list = {
direction = "bottom",
min_height = 25,
max_height = 25,
default_detail = 1,
},
},
},
{
"zeioth/garbage-day.nvim",
event = "LspAttach",
dependencies = "neovim/nvim-lspconfig",
opts = {},
},
{
"piersolenski/telescope-import.nvim",
dependencies = { "nvim-telescope/telescope.nvim" },
config = function()
require("telescope").load_extension("import")
end,
},
{
"Tastyep/structlog.nvim",
},
{
"rachartier/tiny-inline-diagnostic.nvim",
event = "VeryLazy",
opts = {
signs = {
left = "",
right = "",
diag = "",
arrow = "",
up_arrow = "",
vertical = "",
vertical_end = "",
},
},
},
-- TS / JS
{
"dmmulroy/tsc.nvim",
cmd = "TSC",
opts = {
use_trouble_qflist = true,
},
ft = {
"typescript",
"typescriptreact",
},
},
{
"Redoxahmii/json-to-types.nvim",
cmd = { "ConvertJSONtoTS", "ConvertJSONtoTSBuffer" },
build = "sh install.sh bun",
ft = {
"typescript",
"typescriptreact",
},
},
{
"barrett-ruth/import-cost.nvim",
build = "sh install.sh bun",
ft = {
"javascript",
"javascriptreact",
"typescript",
"typescriptreact",
},
},
{
"dmmulroy/ts-error-translator.nvim",
ft = {
"typescript",
"typescriptreact",
},
},
-- C#
{
"iabdelkareem/csharp.nvim",
ft = "cs",
keys = {
{
"<F5>",
function()
require("csharp").debug_project()
end,
{ desc = "C# debug project", noremap = true, nowait = true },
},
},
dependencies = {
"williamboman/mason.nvim",
"mfussenegger/nvim-dap",
"Tastyep/structlog.nvim",
},
config = function()
require("mason").setup()
require("csharp").setup()
end,
},
}

View File

@ -0,0 +1,22 @@
return {
{
"Zeioth/compiler.nvim",
cmd = { "CompilerOpen", "CompilerToggleResults", "CompilerRedo" },
dependencies = {
"stevearc/overseer.nvim",
},
opts = {},
},
{
"stevearc/overseer.nvim",
cmd = { "CompilerOpen", "CompilerToggleResults", "CompilerRedo", "OverseerRun" },
opts = {
task_list = {
direction = "bottom",
min_height = 25,
max_height = 25,
default_detail = 1,
},
},
},
}

View File

@ -0,0 +1,17 @@
return {
{
"rachartier/tiny-inline-diagnostic.nvim",
event = "VeryLazy",
opts = {
signs = {
left = "",
right = "",
diag = "",
arrow = "",
up_arrow = "",
vertical = "",
vertical_end = "",
},
},
},
}

View File

@ -0,0 +1,6 @@
return {
"zeioth/garbage-day.nvim",
event = "LspAttach",
dependencies = "neovim/nvim-lspconfig",
opts = {},
}

View File

@ -0,0 +1,24 @@
return {
{
"iabdelkareem/csharp.nvim",
ft = "cs",
keys = {
{
"<F5>",
function()
require("csharp").debug_project()
end,
{ desc = "C# debug project", noremap = true, nowait = true },
},
},
dependencies = {
"williamboman/mason.nvim",
"mfussenegger/nvim-dap",
"Tastyep/structlog.nvim",
},
config = function()
require("mason").setup()
require("csharp").setup()
end,
},
}

View File

@ -0,0 +1,39 @@
return {
{
"dmmulroy/tsc.nvim",
cmd = "TSC",
opts = {
use_trouble_qflist = true,
},
ft = {
"typescript",
"typescriptreact",
},
},
{
"Redoxahmii/json-to-types.nvim",
cmd = { "ConvertJSONtoTS", "ConvertJSONtoTSBuffer" },
build = "sh install.sh bun",
ft = {
"typescript",
"typescriptreact",
},
},
{
"barrett-ruth/import-cost.nvim",
build = "sh install.sh bun",
ft = {
"javascript",
"javascriptreact",
"typescript",
"typescriptreact",
},
},
{
"dmmulroy/ts-error-translator.nvim",
ft = {
"typescript",
"typescriptreact",
},
},
}

View File

@ -0,0 +1,5 @@
return {
{
"Tastyep/structlog.nvim",
},
}

View File

@ -0,0 +1,9 @@
return {
{
"piersolenski/telescope-import.nvim",
dependencies = { "nvim-telescope/telescope.nvim" },
config = function()
require("telescope").load_extension("import")
end,
},
}

View File

@ -1,238 +0,0 @@
-- since this is just an example spec, don't actually load anything here and return an empty spec
-- stylua: ignore
if true then return {} end
-- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim
--
-- In your plugin files, you can:
-- * add extra plugins
-- * disable/enabled LazyVim plugins
-- * override the configuration of LazyVim plugins
return {
-- add gruvbox
{ "ellisonleao/gruvbox.nvim" },
-- Configure LazyVim to load gruvbox
{
"LazyVim/LazyVim",
opts = {
colorscheme = "gruvbox",
},
},
-- change trouble config
{
"folke/trouble.nvim",
-- opts will be merged with the parent spec
opts = { use_diagnostic_signs = true },
},
-- disable trouble
{ "folke/trouble.nvim", enabled = false },
-- override nvim-cmp and add cmp-emoji
{
"hrsh7th/nvim-cmp",
dependencies = { "hrsh7th/cmp-emoji" },
---@param opts cmp.ConfigSchema
opts = function(_, opts)
table.insert(opts.sources, { name = "emoji" })
end,
},
-- change some telescope options and a keymap to browse plugin files
{
"nvim-telescope/telescope.nvim",
keys = {
-- add a keymap to browse plugin files
-- stylua: ignore
{
"<leader>fp",
function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end,
desc = "Find Plugin File",
},
},
-- change some options
opts = {
defaults = {
layout_strategy = "horizontal",
layout_config = { prompt_position = "top" },
sorting_strategy = "ascending",
winblend = 0,
},
},
},
-- add pyright to lspconfig
{
"neovim/nvim-lspconfig",
---@class PluginLspOpts
opts = {
---@type lspconfig.options
servers = {
-- pyright will be automatically installed with mason and loaded with lspconfig
pyright = {},
},
},
},
-- add tsserver and setup with typescript.nvim instead of lspconfig
{
"neovim/nvim-lspconfig",
dependencies = {
"jose-elias-alvarez/typescript.nvim",
init = function()
require("lazyvim.util").lsp.on_attach(function(_, buffer)
-- stylua: ignore
vim.keymap.set( "n", "<leader>co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" })
vim.keymap.set("n", "<leader>cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer })
end)
end,
},
---@class PluginLspOpts
opts = {
---@type lspconfig.options
servers = {
-- tsserver will be automatically installed with mason and loaded with lspconfig
tsserver = {},
},
-- you can do any additional lsp server setup here
-- return true if you don't want this server to be setup with lspconfig
---@type table<string, fun(server:string, opts:_.lspconfig.options):boolean?>
setup = {
-- example to setup with typescript.nvim
tsserver = function(_, opts)
require("typescript").setup({ server = opts })
return true
end,
-- Specify * to use this function as a fallback for any server
-- ["*"] = function(server, opts) end,
},
},
},
-- for typescript, LazyVim also includes extra specs to properly setup lspconfig,
-- treesitter, mason and typescript.nvim. So instead of the above, you can use:
{ import = "lazyvim.plugins.extras.lang.typescript" },
-- add more treesitter parsers
{
"nvim-treesitter/nvim-treesitter",
opts = {
ensure_installed = {
"bash",
"html",
"javascript",
"json",
"lua",
"markdown",
"markdown_inline",
"python",
"query",
"regex",
"tsx",
"typescript",
"vim",
"yaml",
},
},
},
-- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above
-- would overwrite `ensure_installed` with the new value.
-- If you'd rather extend the default config, use the code below instead:
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
-- add tsx and treesitter
vim.list_extend(opts.ensure_installed, {
"tsx",
"typescript",
})
end,
},
-- the opts function can also be used to change the default opts:
{
"nvim-lualine/lualine.nvim",
event = "VeryLazy",
opts = function(_, opts)
table.insert(opts.sections.lualine_x, "😄")
end,
},
-- or you can return new options to override all the defaults
{
"nvim-lualine/lualine.nvim",
event = "VeryLazy",
opts = function()
return {
--[[add your custom lualine config here]]
}
end,
},
-- use mini.starter instead of alpha
{ import = "lazyvim.plugins.extras.ui.mini-starter" },
-- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc
{ import = "lazyvim.plugins.extras.lang.json" },
-- add any tools you want to have installed below
{
"williamboman/mason.nvim",
opts = {
ensure_installed = {
"stylua",
"shellcheck",
"shfmt",
"flake8",
},
},
},
-- Use <tab> for completion and snippets (supertab)
{
"hrsh7th/nvim-cmp",
dependencies = {
"hrsh7th/cmp-emoji",
},
---@param opts cmp.ConfigSchema
opts = function(_, opts)
local has_words_before = function()
unpack = unpack or table.unpack
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
end
local cmp = require("cmp")
opts.mapping = vim.tbl_extend("force", opts.mapping, {
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif vim.snippet.active({ direction = 1 }) then
vim.schedule(function()
vim.snippet.jump(1)
end)
elseif has_words_before() then
cmp.complete()
else
fallback()
end
end, { "i", "s" }),
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif vim.snippet.active({ direction = -1 }) then
vim.schedule(function()
vim.snippet.jump(-1)
end)
else
fallback()
end
end, { "i", "s" }),
})
end,
},
}

View File

@ -1,56 +0,0 @@
return {
{
"stevearc/oil.nvim",
cmd = "Oil",
opts = {},
dependencies = { "nvim-tree/nvim-web-devicons" },
},
{
"rmagatti/auto-session",
event = "VimEnter",
opts = {
auto_session_enabled = true,
auto_save_enabled = true,
auto_restore_enabled = true,
auto_session_use_git_branch = true,
pre_save_cmds = { "BDelete! nameless", "BDelete! hidden", "BDelete glob=yode*", "cclose" },
},
},
{
{
"antosha417/nvim-lsp-file-operations",
event = "LspAttach",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-neo-tree/neo-tree.nvim",
},
},
},
{
"akinsho/toggleterm.nvim",
cmd = "ToggleTerm",
opts = {
float_opts = {
border = "curved",
title_pos = "left",
width = 128,
height = 16,
row = 1,
},
winbar = {
enabled = true,
name_formatter = function(term)
return term.name
end,
},
},
},
{
"tris203/precognition.nvim",
cmd = "Precognition toggle",
opts = {
startVisible = true,
showBlankVirtLine = false,
},
},
}

View File

@ -0,0 +1,12 @@
return {
{
{
"antosha417/nvim-lsp-file-operations",
event = "LspAttach",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-neo-tree/neo-tree.nvim",
},
},
},
}

View File

@ -0,0 +1,8 @@
return {
{
"stevearc/oil.nvim",
cmd = "Oil",
opts = {},
dependencies = { "nvim-tree/nvim-web-devicons" },
},
}

View File

@ -1,24 +0,0 @@
return {
{
"f-person/git-blame.nvim",
event = "BufReadPre",
opts = {
delay = 10,
date_format = "%x • %X",
-- schedule_event = "CursorHold",
-- clear_event = "CursorHoldI",
},
},
{
"nvim-telescope/telescope.nvim",
dependencies = {
{
"agoodshort/telescope-git-submodules.nvim",
dependencies = "akinsho/toggleterm.nvim",
},
},
config = function()
require("telescope").load_extension("git_submodules")
end,
},
}

View File

@ -0,0 +1,10 @@
return {
"f-person/git-blame.nvim",
event = "BufReadPre",
opts = {
delay = 10,
date_format = "%x • %X",
-- schedule_event = "CursorHold",
-- clear_event = "CursorHoldI",
},
}

View File

@ -0,0 +1,12 @@
return {
"nvim-telescope/telescope.nvim",
dependencies = {
{
"agoodshort/telescope-git-submodules.nvim",
dependencies = "akinsho/toggleterm.nvim",
},
},
config = function()
require("telescope").load_extension("git_submodules")
end,
}

View File

@ -1,6 +0,0 @@
return {
{
"Darazaki/indent-o-matic",
event = "BufReadPre",
},
}

View File

@ -1,77 +0,0 @@
return {
{
"opdavies/toggle-checkbox.nvim",
ft = "markdown",
},
{
"yujinyuz/gitpad.nvim",
opts = {
title = "Note",
border = "rounded",
dir = "~/Workspace/Notes/",
},
},
{
"jmbuhr/otter.nvim",
ft = "markdown",
dependencies = {
"hrsh7th/nvim-cmp", -- optional, for completion
"neovim/nvim-lspconfig",
"nvim-treesitter/nvim-treesitter",
},
},
{
"vhyrro/luarocks.nvim",
lazy = true,
priority = 1001,
opts = {
rocks = { "magick" },
},
},
{
"nvim-neorg/neorg",
dependencies = { "luarocks.nvim" },
ft = { "norg" },
version = "*",
},
{
"3rd/image.nvim",
ft = { "markdown", "quarto", "vimwiki" },
dependencies = { "luarocks.nvim" },
opts = {
backend = "kitty",
integrations = {
markdown = {
enabled = true,
only_render_image_at_cursor = false,
filetypes = { "markdown", "vimwiki", "quarto" },
},
},
editor_only_render_when_focused = false,
window_overlap_clear_enabled = true,
-- window_overlap_clear_ft_ignore = { 'cmp_menu', 'cmp_docs', 'scrollview' },
tmux_show_only_in_active_window = true,
window_overlap_clear_ft_ignore = { "cmp_menu", "cmp_docs", "scrollview", "scrollview_sign" },
max_width = nil,
max_height = nil,
max_width_window_percentage = nil,
max_height_window_percentage = 30,
kitty_method = "normal",
},
{
"epwalsh/obsidian.nvim",
ft = "markdown",
dependencies = {
"nvim-lua/plenary.nvim",
},
opts = {
workspaces = {
{
name = "Project Pillar",
path = "~/Workspace/Notes/Rouge Pillar/",
},
},
},
},
},
}

View File

@ -0,0 +1,14 @@
return {
{
"opdavies/toggle-checkbox.nvim",
ft = "markdown",
},
{
"yujinyuz/gitpad.nvim",
opts = {
title = "Note",
border = "rounded",
dir = "~/Workspace/Notes/",
},
},
}

View File

@ -0,0 +1,10 @@
return {
"OXY2DEV/markview.nvim",
ft = "markdown",
dependencies = {
"nvim-tree/nvim-web-devicons",
},
config = function()
require("markview").setup()
end,
}

View File

@ -0,0 +1,35 @@
return {
{
"vhyrro/luarocks.nvim",
lazy = true,
priority = 1001,
opts = {
rocks = { "magick" },
},
},
{
"3rd/image.nvim",
ft = { "markdown", "quarto", "vimwiki" },
dependencies = { "luarocks.nvim" },
opts = {
backend = "kitty",
integrations = {
markdown = {
enabled = true,
only_render_image_at_cursor = false,
filetypes = { "markdown", "vimwiki", "quarto" },
},
},
editor_only_render_when_focused = false,
window_overlap_clear_enabled = true,
-- window_overlap_clear_ft_ignore = { 'cmp_menu', 'cmp_docs', 'scrollview' },
tmux_show_only_in_active_window = true,
window_overlap_clear_ft_ignore = { "cmp_menu", "cmp_docs", "scrollview", "scrollview_sign" },
max_width = nil,
max_height = nil,
max_width_window_percentage = nil,
max_height_window_percentage = 30,
kitty_method = "normal",
},
},
}

View File

@ -0,0 +1,30 @@
return {
"epwalsh/obsidian.nvim",
ft = "markdown",
dependencies = {
"nvim-lua/plenary.nvim",
},
opts = {
workspaces = {
{
name = "Project Pillar",
path = "~/.vault/Rouge Pillar/",
},
},
},
{
"nvim-neorg/neorg",
dependencies = { "luarocks.nvim" },
ft = { "norg" },
version = "*",
},
{
"jmbuhr/otter.nvim",
ft = "markdown",
dependencies = {
"hrsh7th/nvim-cmp", -- optional, for completion
"neovim/nvim-lspconfig",
"nvim-treesitter/nvim-treesitter",
},
},
}

View File

@ -1,246 +0,0 @@
local logo = [[
]]
local section = require("alpha.themes.dashboard").section
return {
{
"catppuccin/nvim",
enabled = false,
},
{
"folke/tokyonight.nvim",
enabled = false,
},
{
"LazyVim/LazyVim",
opts = {
colorscheme = "everforest",
},
},
{
"goolord/alpha-nvim",
opts = {
section = {
header = {
val = vim.split(logo, "\n"),
},
},
opts = {
layout = {
section.header,
{ type = "padding", val = 1 },
section.buttons,
section.footer,
},
},
},
},
{
"hrsh7th/nvim-cmp",
opts = {
window = {
documentation = {
border = "rounded",
},
completion = {
border = "rounded",
},
},
},
},
{
"folke/noice.nvim",
opts = {
presets = {
bottom_search = false,
lsp_doc_border = true,
},
lsp = {
hover = {
silent = true,
},
},
},
},
{
"nvim-lualine/lualine.nvim",
opts = {
sections = {
lualine_z = {
require("auto-session.lib").current_session_name,
},
},
},
},
{
"nvim-neo-tree/neo-tree.nvim",
dependencies = "MunifTanjim/nui.nvim",
version = "*",
opts = {
auto_clean_after_session_restore = true,
close_if_last_window = true,
sources = {
"filesystem",
"buffers",
"git_status",
"netman.ui.neo-tree",
},
window = {
width = 30,
mappings = {
["h"] = function(state)
local node = state.tree:get_node()
if node.type == "directory" and node:is_expanded() then
require("neo-tree.sources.filesystem").toggle_directory(state, node)
else
require("neo-tree.ui.renderer").focus_node(state, node:get_parent_id())
end
end,
["l"] = function(state)
local node = state.tree:get_node()
local path = node:get_id()
if node.type == "directory" then
if not node:is_expanded() then
require("neo-tree.sources.filesystem").toggle_directory(state, node)
elseif node:has_children() then
require("neo-tree.ui.renderer").focus_node(state, node:get_child_ids()[1])
end
end
if node.type == "file" then
require("neo-tree.utils").open_file(state, path)
end
end,
},
},
},
},
{
"rcarriga/nvim-notify",
opts = {
timeout = 2500,
fps = 170,
stages = "fade_in_slide_out",
},
},
-- {
-- "nvimtools/none-ls.nvim",
-- opts = {
-- source = {
-- builtins = {
-- csharpier = {
-- args = { "--write-stdout", "--no-cache", "$FILENAME" },
-- },
-- },
-- },
-- },
-- },
{
"nvim-telescope/telescope.nvim",
opts = {
defaults = {
preview = {
mime_hook = function(filepath, bufnr, opts)
local is_image = function(_filepath)
local image_extensions = { "png", "jpg" }
local split_path = vim.split(_filepath:lower(), ".", { plain = true })
local extension = split_path[#split_path]
return vim.tbl_contains(image_extensions, extension)
end
if is_image(filepath) then
local term = vim.api.nvim_open_term(bufnr, {})
local function send_output(_, data, _)
for _, d in ipairs(data) do
vim.api.nvim_chan_send(term, d .. "\r\n")
end
end
vim.fn.jobstart({
"kitten",
"icat",
filepath,
}, { on_stdout = send_output, stdout_buffered = true, pty = true })
else
require("telescope.previewers.utils").set_preview_message(bufnr, opts.winid, "Binary cannot be previewed")
end
end,
},
},
},
},
{
"nvim-lspconfig",
opts = {
diagnostics = {
virtual_text = false,
},
},
},
{
"mfussenegger/nvim-dap",
opts = {
adapters = {
godot = {
type = "server",
host = "127.0.0.1",
port = 6006,
},
},
configurations = {
cs = {
{
type = "godot",
request = "launch",
name = "Launch Scene",
project = "${workspaceFolder}",
launch_scene = true,
},
},
},
},
},
{
"rcarriga/nvim-dap-ui",
opts = {
expand_lines = true,
icons = { expanded = "", collapsed = "", circular = "" },
layouts = {
{
elements = {
{ id = "watches", size = 0.24 },
{ id = "scopes", size = 0.24 },
{ id = "breakpoints", size = 0.24 },
{ id = "stacks", size = 0.28 },
},
size = 0.23,
position = "right",
},
{
elements = {
{ id = "repl", size = 0.55 },
{ id = "console", size = 0.45 },
},
size = 0.27,
position = "bottom",
},
},
floating = {
max_height = 0.9,
max_width = 0.5,
border = "rounded",
},
},
},
}

View File

@ -0,0 +1,37 @@
local logo = [[
]]
local section = require("alpha.themes.dashboard").section
return {
"goolord/alpha-nvim",
opts = {
section = {
header = {
val = vim.split(logo, "\n"),
},
},
opts = {
layout = {
section.header,
{ type = "padding", val = 1 },
section.buttons,
section.footer,
},
},
},
}

View File

@ -0,0 +1,91 @@
require("dap.ext.vscode").load_launchjs()
return {
{
"hrsh7th/nvim-cmp",
opts = {
window = {
documentation = {
border = "rounded",
},
completion = {
border = "rounded",
},
},
},
},
-- {
-- "nvimtools/none-ls.nvim",
-- opts = {
-- source = {
-- builtins = {
-- csharpier = {
-- args = { "--write-stdout", "--no-cache", "$FILENAME" },
-- },
-- },
-- },
-- },
-- },
{
"nvim-lspconfig",
opts = {
diagnostics = {
virtual_text = false,
},
},
},
{
"mfussenegger/nvim-dap",
opts = {
adapters = {
godot = {
type = "server",
host = "127.0.0.1",
port = 6006,
},
},
configurations = {
cs = {
{
type = "godot",
request = "launch",
name = "Launch Scene",
project = "${workspaceFolder}",
launch_scene = true,
},
},
},
},
},
{
"rcarriga/nvim-dap-ui",
opts = {
expand_lines = true,
icons = { expanded = "", collapsed = "", circular = "" },
layouts = {
{
elements = {
{ id = "watches", size = 0.24 },
{ id = "scopes", size = 0.24 },
{ id = "breakpoints", size = 0.24 },
{ id = "stacks", size = 0.28 },
},
size = 0.23,
position = "right",
},
{
elements = {
{ id = "repl", size = 0.55 },
{ id = "console", size = 0.45 },
},
size = 0.27,
position = "bottom",
},
},
floating = {
max_height = 0.9,
max_width = 0.5,
border = "rounded",
},
},
},
}

View File

@ -0,0 +1,42 @@
return {
"nvim-neo-tree/neo-tree.nvim",
dependencies = "MunifTanjim/nui.nvim",
version = "*",
opts = {
auto_clean_after_session_restore = true,
close_if_last_window = true,
sources = {
"filesystem",
"buffers",
"git_status",
"netman.ui.neo-tree",
},
window = {
width = 30,
mappings = {
["h"] = function(state)
local node = state.tree:get_node()
if node.type == "directory" and node:is_expanded() then
require("neo-tree.sources.filesystem").toggle_directory(state, node)
else
require("neo-tree.ui.renderer").focus_node(state, node:get_parent_id())
end
end,
["l"] = function(state)
local node = state.tree:get_node()
local path = node:get_id()
if node.type == "directory" then
if not node:is_expanded() then
require("neo-tree.sources.filesystem").toggle_directory(state, node)
elseif node:has_children() then
require("neo-tree.ui.renderer").focus_node(state, node:get_child_ids()[1])
end
end
if node.type == "file" then
require("neo-tree.utils").open_file(state, path)
end
end,
},
},
},
}

View File

@ -0,0 +1,32 @@
return {
"nvim-telescope/telescope.nvim",
opts = {
defaults = {
preview = {
mime_hook = function(filepath, bufnr, opts)
local is_image = function(_filepath)
local image_extensions = { "png", "jpg" }
local split_path = vim.split(_filepath:lower(), ".", { plain = true })
local extension = split_path[#split_path]
return vim.tbl_contains(image_extensions, extension)
end
if is_image(filepath) then
local term = vim.api.nvim_open_term(bufnr, {})
local function send_output(_, data, _)
for _, d in ipairs(data) do
vim.api.nvim_chan_send(term, d .. "\r\n")
end
end
vim.fn.jobstart({
"kitten",
"icat",
filepath,
}, { on_stdout = send_output, stdout_buffered = true, pty = true })
else
require("telescope.previewers.utils").set_preview_message(bufnr, opts.winid, "Binary cannot be previewed")
end
end,
},
},
},
}

View File

@ -0,0 +1,16 @@
return {
{
"catppuccin/nvim",
enabled = false,
},
{
"folke/tokyonight.nvim",
enabled = false,
},
{
"LazyVim/LazyVim",
opts = {
colorscheme = "everforest",
},
},
}

View File

@ -0,0 +1,34 @@
return {
{
"folke/noice.nvim",
opts = {
presets = {
bottom_search = false,
lsp_doc_border = true,
},
lsp = {
hover = {
silent = true,
},
},
},
},
-- {
-- "nvim-lualine/lualine.nvim",
-- opts = {
-- sections = {
-- lualine_z = {
-- require("auto-session.lib").current_session_name,
-- },
-- },
-- },
-- },
{
"rcarriga/nvim-notify",
opts = {
timeout = 2500,
fps = 170,
stages = "fade_in_slide_out",
},
},
}

View File

@ -0,0 +1,19 @@
return {
"akinsho/toggleterm.nvim",
cmd = "ToggleTerm",
opts = {
float_opts = {
border = "curved",
title_pos = "left",
width = 128,
height = 16,
row = 1,
},
winbar = {
enabled = true,
name_formatter = function(term)
return term.name
end,
},
},
}

View File

@ -1,39 +0,0 @@
---@diagnostic disable: missing-fields
return {
{
"neanias/everforest-nvim",
config = function()
require("everforest").setup({
background = "medium",
italics = true,
ui_contrast = "high",
diagnostic_text_highlight = true,
})
end,
},
{
"brenoprata10/nvim-highlight-colors",
event = "BufReadPre",
opts = {
render = "virtual",
virtual_symbol = "",
enable_tailwind = true,
},
},
{
"HiPhish/rainbow-delimiters.nvim",
event = "BufReadPre",
},
{
"kevinhwang91/nvim-ufo",
event = "BufReadPre",
},
{
"2kabhishek/nerdy.nvim",
dependencies = {
"stevearc/dressing.nvim",
"nvim-telescope/telescope.nvim",
},
cmd = "Nerdy",
},
}

View File

@ -0,0 +1,15 @@
return {
{
"brenoprata10/nvim-highlight-colors",
event = "BufReadPre",
opts = {
render = "virtual",
virtual_symbol = "",
enable_tailwind = true,
},
},
{
"HiPhish/rainbow-delimiters.nvim",
event = "BufReadPre",
},
}

View File

@ -0,0 +1,4 @@
return {
"kevinhwang91/nvim-ufo",
event = "BufReadPre",
}

View File

@ -0,0 +1,4 @@
return {
"Darazaki/indent-o-matic",
event = "BufReadPre",
}

View File

@ -0,0 +1,8 @@
return {
"2kabhishek/nerdy.nvim",
dependencies = {
"stevearc/dressing.nvim",
"nvim-telescope/telescope.nvim",
},
cmd = "Nerdy",
}

View File

@ -0,0 +1,12 @@
---@diagnostic disable: missing-fields
return {
"neanias/everforest-nvim",
config = function()
require("everforest").setup({
background = "medium",
italics = true,
ui_contrast = "high",
diagnostic_text_highlight = true,
})
end,
}