diff options
9 files changed, 285 insertions, 125 deletions
diff --git a/ar/.config/TheSiahxyz/lua/TheSiahxyz/plugins/telescope.lua b/ar/.config/TheSiahxyz/lua/TheSiahxyz/plugins/telescope.lua index 9460187..98fd30a 100644 --- a/ar/.config/TheSiahxyz/lua/TheSiahxyz/plugins/telescope.lua +++ b/ar/.config/TheSiahxyz/lua/TheSiahxyz/plugins/telescope.lua @@ -517,6 +517,42 @@ return { local open_with_trouble = require("trouble.sources.telescope").open local add_to_trouble = require("trouble.sources.telescope").add + local function telescope_open_single_or_multi(prompt_bufnr) + local picker = actions_state.get_current_picker(prompt_bufnr) + local multi = picker:get_multi_selection() + + -- If you selected multiple (with <Tab>), open them all. + if not vim.tbl_isempty(multi) then + actions.close(prompt_bufnr) + + for _, entry in ipairs(multi) do + -- Try to get a filepath across different pickers + local path = entry.path -- find_files, oldfiles, etc. + or entry.filename -- live_grep/grep_string + or (type(entry.value) == "string" and entry.value) + or (entry.value and entry.value.path) + + if path then + vim.cmd("edit " .. vim.fn.fnameescape(path)) + + -- (Optional) jump to the matched line/col for grep results + local lnum = entry.lnum or entry.row + local col = entry.col + if lnum then + vim.api.nvim_win_set_cursor(0, { lnum, math.max((col or 1) - 1, 0) }) + end + elseif entry.bufnr then + -- buffers picker + vim.cmd("buffer " .. entry.bufnr) + end + end + return + end + + -- Single selection → let Telescope handle it + -- This respects picker-specific behavior (e.g. jumping to lnum for grep). + actions.select_default(prompt_bufnr) + end require("telescope").setup({ defaults = { mappings = { @@ -549,6 +585,7 @@ return { ["<C-o><C-l>"] = actions.insert_original_cline, ["<M-f>"] = actions.nop, ["<M-k>"] = actions.nop, + ["<CR>"] = telescope_open_single_or_multi, }, n = { ["q"] = actions.close, @@ -635,6 +672,14 @@ return { "--follow", "--hidden", "--sortr=modified", + "--glob", + "!**/.cache/*/*/*", + "--glob", + "!**/.git/*/*/*", + "--glob", + "!**/.next/*/*/*", + "--glob", + "!**/node_modules/*/*/*", }, }, }, @@ -645,14 +690,14 @@ return { require("telescope.builtin").buffers({ sort_mru = true, sort_lastused = true, - initial_mode = "normal", + -- initial_mode = "normal", }) end, { desc = "Find buffer files" }) vim.keymap.set("n", "<leader>fb", function() require("telescope.builtin").buffers({ sort_mru = true, sort_lastused = true, - initial_mode = "normal", + -- initial_mode = "normal", }) end, { desc = "Find buffer files" }) vim.keymap.set("n", "<leader>fc", function() diff --git a/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/ai.lua b/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/ai.lua index fdecb52..1d99082 100644 --- a/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/ai.lua +++ b/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/ai.lua @@ -1,81 +1,81 @@ return { - { - "yetone/avante.nvim", - -- if you want to build from source then do `make BUILD_FROM_SOURCE=true` - -- ⚠️ must add this setting! ! ! - build = vim.fn.has("win32") ~= 0 - and "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false" - or "make", - event = "VeryLazy", - version = false, -- Never set this value to "*"! Never! - ---@module 'avante' - ---@type avante.Config - opts = { - -- add any opts here - -- this file can contain specific instructions for your project - instructions_file = "avante.md", - -- for example - provider = "claude", - providers = { - claude = { - endpoint = "https://api.anthropic.com", - model = "claude-sonnet-4-20250514", - timeout = 30000, -- Timeout in milliseconds - extra_request_body = { - temperature = 0.75, - max_tokens = 20480, - }, - }, - moonshot = { - endpoint = "https://api.moonshot.ai/v1", - model = "kimi-k2-0711-preview", - timeout = 30000, -- Timeout in milliseconds - extra_request_body = { - temperature = 0.75, - max_tokens = 32768, - }, - }, - }, - }, - dependencies = { - "nvim-lua/plenary.nvim", - "MunifTanjim/nui.nvim", - --- The below dependencies are optional, - "echasnovski/mini.pick", -- for file_selector provider mini.pick - "nvim-telescope/telescope.nvim", -- for file_selector provider telescope - "hrsh7th/nvim-cmp", -- autocompletion for avante commands and mentions - "ibhagwan/fzf-lua", -- for file_selector provider fzf - -- "stevearc/dressing.nvim", -- for input provider dressing - "folke/snacks.nvim", -- for input provider snacks - "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" }, - }, - }, - }, + -- { + -- "yetone/avante.nvim", + -- -- if you want to build from source then do `make BUILD_FROM_SOURCE=true` + -- -- ⚠️ must add this setting! ! ! + -- build = vim.fn.has("win32") ~= 0 + -- and "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false" + -- or "make", + -- event = "VeryLazy", + -- version = false, -- Never set this value to "*"! Never! + -- ---@module 'avante' + -- ---@type avante.Config + -- opts = { + -- -- add any opts here + -- -- this file can contain specific instructions for your project + -- instructions_file = "avante.md", + -- -- for example + -- provider = "claude", + -- providers = { + -- claude = { + -- endpoint = "https://api.anthropic.com", + -- model = "claude-sonnet-4-20250514", + -- timeout = 30000, -- Timeout in milliseconds + -- extra_request_body = { + -- temperature = 0.75, + -- max_tokens = 20480, + -- }, + -- }, + -- moonshot = { + -- endpoint = "https://api.moonshot.ai/v1", + -- model = "kimi-k2-0711-preview", + -- timeout = 30000, -- Timeout in milliseconds + -- extra_request_body = { + -- temperature = 0.75, + -- max_tokens = 32768, + -- }, + -- }, + -- }, + -- }, + -- dependencies = { + -- "nvim-lua/plenary.nvim", + -- "MunifTanjim/nui.nvim", + -- --- The below dependencies are optional, + -- -- "echasnovski/mini.pick", -- for file_selector provider mini.pick + -- -- "nvim-telescope/telescope.nvim", -- for file_selector provider telescope + -- -- "hrsh7th/nvim-cmp", -- autocompletion for avante commands and mentions + -- -- "ibhagwan/fzf-lua", -- for file_selector provider fzf + -- -- "stevearc/dressing.nvim", -- for input provider dressing + -- -- "folke/snacks.nvim", -- for input provider snacks + -- -- "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" }, + -- }, + -- }, + -- }, -- { -- "robitx/gp.nvim", -- init = function() diff --git a/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/lf.lua b/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/lf.lua index 63275f0..3f82222 100644 --- a/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/lf.lua +++ b/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/lf.lua @@ -81,7 +81,7 @@ return { escape_quit = true, -- Map escape to the quit command focus_on_open = true, -- Focus the current file when opening Lf mappings = true, -- Enable terminal buffer mapping - tmux = false, -- Tmux statusline can be disabled + tmux = true, -- Tmux statusline can be disabled disable_netrw_warning = true, -- Don't display a message when opening a directory highlights = { Normal = { link = "Normal" }, -- Use normal highlighting diff --git a/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/lualine.lua b/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/lualine.lua index 9c4f0d9..ab9db81 100644 --- a/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/lualine.lua +++ b/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/lualine.lua @@ -51,6 +51,11 @@ return { }, }, lualine_b = { + { + function() + return vim.g.remote_neovim_host and ("Remote: %s"):format(vim.uv.os_gethostname()) or "" + end, + }, "branch", { "diff", diff --git a/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/ssh.lua b/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/ssh.lua index 20cead1..597d453 100644 --- a/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/ssh.lua +++ b/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/ssh.lua @@ -7,4 +7,54 @@ return { "nvim-telescope/telescope.nvim", -- For picking b/w different remote methods }, config = true, + init = function() + local wk = require("which-key") + wk.add({ + { "<localleader>r", group = "SSH Remote" }, + }) + end, + keys = { + { + "<localleader>rs", + "<cmd>RemoteStart<CR>", + desc = "Start/Connect", + mode = "n", + silent = true, + }, + { + "<localleader>rx", + "<cmd>RemoteStop<CR>", + desc = "Stop/Close", + mode = "n", + silent = true, + }, + { + "<localleader>ri", + "<cmd>RemoteInfo<CR>", + desc = "Info/Progress Viewer", + mode = "n", + silent = true, + }, + { + "<localleader>rc", + "<cmd>RemoteCleanup<CR>", + desc = "Cleanup workspace/setup", + mode = "n", + silent = true, + }, + { + "<localleader>rd", + "<cmd>RemoteConfigDel<CR>", + desc = "Delete saved config", + mode = "n", + silent = true, + }, + { + "<localleader>rl", + "<cmd>RemoteLog<CR>", + desc = "Open log", + mode = "n", + silent = true, + }, + }, } diff --git a/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/telescope.lua b/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/telescope.lua index c640af0..98fd30a 100644 --- a/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/telescope.lua +++ b/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/telescope.lua @@ -31,48 +31,6 @@ local function find_nvim_plugin_files(prompt_bufnr) end end -local function telescope_open_single_or_multi(bufnr) - local actions = require("telescope.actions") - local action_state = require("telescope.actions.state") - - local picker = action_state.get_current_picker(bufnr) - local multi = picker:get_multi_selection() - - local function open_path(p) - vim.cmd("edit " .. vim.fn.fnameescape(p)) - end - - -- If there are multiple selections and at least one has a path, open those. - if multi and #multi > 0 then - local opened_any = false - for _, entry in ipairs(multi) do - if entry and entry.path then - if not opened_any then - actions.close(bufnr) - end - opened_any = true - open_path(entry.path) - end - end - if opened_any then - return - else - -- Nothing had a path → fall back (e.g. ui-select) - return actions.select_default(bufnr) - end - end - - -- Single selection - local entry = action_state.get_selected_entry() - if entry and entry.path then - actions.close(bufnr) - open_path(entry.path) - else - -- No path → let Telescope / ui-select handle Enter normally - return actions.select_default(bufnr) - end -end - return { { "nvim-telescope/telescope-file-browser.nvim", @@ -559,6 +517,42 @@ return { local open_with_trouble = require("trouble.sources.telescope").open local add_to_trouble = require("trouble.sources.telescope").add + local function telescope_open_single_or_multi(prompt_bufnr) + local picker = actions_state.get_current_picker(prompt_bufnr) + local multi = picker:get_multi_selection() + + -- If you selected multiple (with <Tab>), open them all. + if not vim.tbl_isempty(multi) then + actions.close(prompt_bufnr) + + for _, entry in ipairs(multi) do + -- Try to get a filepath across different pickers + local path = entry.path -- find_files, oldfiles, etc. + or entry.filename -- live_grep/grep_string + or (type(entry.value) == "string" and entry.value) + or (entry.value and entry.value.path) + + if path then + vim.cmd("edit " .. vim.fn.fnameescape(path)) + + -- (Optional) jump to the matched line/col for grep results + local lnum = entry.lnum or entry.row + local col = entry.col + if lnum then + vim.api.nvim_win_set_cursor(0, { lnum, math.max((col or 1) - 1, 0) }) + end + elseif entry.bufnr then + -- buffers picker + vim.cmd("buffer " .. entry.bufnr) + end + end + return + end + + -- Single selection → let Telescope handle it + -- This respects picker-specific behavior (e.g. jumping to lnum for grep). + actions.select_default(prompt_bufnr) + end require("telescope").setup({ defaults = { mappings = { diff --git a/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/urlview.lua b/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/urlview.lua index d323a1a..69e7762 100644 --- a/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/urlview.lua +++ b/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/urlview.lua @@ -95,11 +95,11 @@ return { -- Default: + (system clipboard) default_register = "+", -- Whether plugin URLs should link to the branch used by your package manager - default_include_branch = false, + default_include_branch = true, -- Ensure links shown in the picker are unique (no duplicates) - unique = false, + unique = true, -- Ensure links shown in the picker are sorted alphabetically - sorted = false, + sorted = true, -- Minimum log level (recommended at least `vim.log.levels.WARN` for error detection warnings) log_level_min = vim.log.levels.INFO, -- Keymaps for jumping to previous / next URL in buffer diff --git a/mac/.config/TheSiahxyz/lua/TheSiahxyz/utils/avante/avante.md b/mac/.config/TheSiahxyz/lua/TheSiahxyz/utils/avante/avante.md new file mode 100644 index 0000000..81cced6 --- /dev/null +++ b/mac/.config/TheSiahxyz/lua/TheSiahxyz/utils/avante/avante.md @@ -0,0 +1,34 @@ +# Project instructions for myapp + +## Your role + +you are an expert full-stack developer specializing in react, node.js, and typescript. you understand modern web development practices and have experience with our tech stack. + +## Your mission + +help build a scalable e-commerce platform by: + +- writing type-safe typescript code +- following react best practices and hooks patterns +- implementing restful apis with proper error handling +- ensuring responsive design with tailwind css +- writing comprehensive unit and integration tests + +## Project context + +myapp is a modern e-commerce platform targeting small businesses. we prioritize performance, accessibility, and user experience. + +## Technology stack + +- frontend: react 18, typescript, tailwind css, vite +- backend: node.js, express, prisma, postgresql +- testing: jest, react testing library, playwright +- deployment: docker, aws + +## Coding standards + +- use functional components with hooks +- prefer composition over inheritance +- write self-documenting code with clear variable names +- add jsdoc comments for complex functions +- follow the existing folder structure and naming conventions diff --git a/mac/.config/TheSiahxyz/lua/TheSiahxyz/utils/avante/dts.md b/mac/.config/TheSiahxyz/lua/TheSiahxyz/utils/avante/dts.md new file mode 100644 index 0000000..8a05129 --- /dev/null +++ b/mac/.config/TheSiahxyz/lua/TheSiahxyz/utils/avante/dts.md @@ -0,0 +1,32 @@ +# Project instructions for SI (system integration) + +## Your role + +You are an expert full-stack developer specializing in nextjs, javascript, and typescript. You understand a modern system integration and have experience with our tech stack. + +## Your mission + +Help build an enterprise vendor co-work platform by: + +- writing type-safe javascript/typescript code +- following nextjs best practices and hooks patterns +- implementing restful apis with proper error handling +- ensuring responsive design with tailwind css + +## Project context + +SI is a modern enterprise vendor co-work platform targeting Samsung Heavy Industries Co., Ltd. We prioritize performance, accessibility, and user experience for business. + +## Technology stack + +- frontend: nextjs 17, javascript, typescript, tailwind css +- backend: nodejs, drizzle, prisma, postgresql +- deployment: docker, aws + +## Coding standards + +- use functional components with hooks +- prefer composition over inheritance +- write self-documenting code with clear variable names +- add jsdoc comments for complex functions +- follow the existing folder structure and naming conventions |
