From 2559cfdbd95f0a7b19ff2e397a37505f2227e37b Mon Sep 17 00:00:00 2001 From: devaine Date: Thu, 25 Dec 2025 14:03:20 -0600 Subject: [PATCH] feat(remote): added remote (ssh) functionality, that's it. --- lazy-lock.json | 28 ++++++++++++++++------------ lua/config/vim.lua | 8 ++++++++ lua/plugins/dev-utils.lua | 24 +++++++++++++++++++++++- lua/plugins/lsp.lua | 19 +++++++++++++++++++ lua/plugins/remote.lua | 12 ++++++++++++ 5 files changed, 78 insertions(+), 13 deletions(-) create mode 100644 lua/plugins/remote.lua diff --git a/lazy-lock.json b/lazy-lock.json index e792b6a..cf6f9fb 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,22 +1,26 @@ { - "blink.cmp": { "branch": "main", "commit": "327fff91fe6af358e990be7be1ec8b78037d2138" }, - "conform.nvim": { "branch": "master", "commit": "9fd3d5e0b689ec1bf400c53cbbec72c6fdf24081" }, - "cord.nvim": { "branch": "master", "commit": "1aadec47743e6cfe77ae6860a5b4305a465f03be" }, + "FTerm.nvim": { "branch": "master", "commit": "d1320892cc2ebab472935242d9d992a2c9570180" }, + "blink.cmp": { "branch": "main", "commit": "b19413d214068f316c78978b08264ed1c41830ec" }, + "conform.nvim": { "branch": "master", "commit": "5420c4b5ea0aeb99c09cfbd4fd0b70d257b44f25" }, + "cord.nvim": { "branch": "master", "commit": "7483e9ce335d22a9e52f83804134d621094b5fe7" }, "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, "kanagawa.nvim": { "branch": "master", "commit": "aef7f5cec0a40dbe7f3304214850c472e2264b10" }, - "lazy.nvim": { "branch": "main", "commit": "ed4dc336a73c18da6fea6e1cf7ad6e1b76d281eb" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "1d77bd86e1c3eaa777010c95dad455b83823f247" }, - "mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" }, - "neo-tree.nvim": { "branch": "v3.x", "commit": "8cdd6b1940f333c1dd085526a9c45b30fb2dbf50" }, + "lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "9f9c67795d0795a6e8612f5a899ca64a074a1076" }, + "mason.nvim": { "branch": "main", "commit": "57e5a8addb8c71fb063ee4acda466c7cf6ad2800" }, + "neo-tree.nvim": { "branch": "v3.x", "commit": "f3df514fff2bdd4318127c40470984137f87b62e" }, "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, - "nvim-autopairs": { "branch": "master", "commit": "7a2c97cccd60abc559344042fefb1d5a85b3e33b" }, - "nvim-eslint": { "branch": "main", "commit": "e052854a05c0e247c0fc886bcff7c8ef9d54c2b9" }, + "nvim-autopairs": { "branch": "master", "commit": "c2a0dd0d931d0fb07665e1fedb1ea688da3b80b4" }, + "nvim-eslint": { "branch": "main", "commit": "491deac6d89a5c51013fa71b63c3cc093db15dde" }, "nvim-highlight-colors": { "branch": "main", "commit": "e0c4a58ec8c3ca7c92d3ee4eb3bc1dd0f7be317e" }, - "nvim-lspconfig": { "branch": "master", "commit": "a9b2fb560c4ab22c10728fd5149dbd7b62aa4f69" }, + "nvim-jdtls": { "branch": "master", "commit": "f73731b543f5971e0da9665eb1d7ceffe1fde71f" }, + "nvim-lspconfig": { "branch": "master", "commit": "8973916a3d015d65a8c4614e141f4270a713cf33" }, "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, "nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" }, - "nvim-web-devicons": { "branch": "master", "commit": "8dcb311b0c92d460fac00eac706abd43d94d68af" }, + "nvim-web-devicons": { "branch": "master", "commit": "6788013bb9cb784e606ada44206b0e755e4323d7" }, "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, - "todo-comments.nvim": { "branch": "main", "commit": "19d461ddd543e938eb22505fb03fa878800270b6" } + "remote-nvim.nvim": { "branch": "main", "commit": "9992c2fb8bf4f11aca2c8be8db286b506f92efcb" }, + "telescope.nvim": { "branch": "master", "commit": "4d0f5e0e7f69071e315515c385fab2a4eff07b3d" }, + "todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" } } diff --git a/lua/config/vim.lua b/lua/config/vim.lua index 5701619..cd5a233 100644 --- a/lua/config/vim.lua +++ b/lua/config/vim.lua @@ -45,6 +45,14 @@ keybind("i", "jk", "", { desc = "Keybind set for Justin" }) keybind("n", "mm", "Neotree toggle", { desc = "Toggle File Explorer" }) keybind("n", "jj", "Neotree action=focus", { desc = "Focus on file explorer" }) +-- open floating terminal +-- to see toggling, see dev-utils.lua for closing function +keybind('n', '', 'lua require("FTerm").open()') + +-- remote connection +keybind('n', ';;', 'RemoteStart') + + -- file handling opt.backup = false opt.writebackup = false diff --git a/lua/plugins/dev-utils.lua b/lua/plugins/dev-utils.lua index 6b422c0..3f1ac2d 100644 --- a/lua/plugins/dev-utils.lua +++ b/lua/plugins/dev-utils.lua @@ -5,7 +5,7 @@ return { branch = 'master', lazy = false, build = ":TSUpdate", - config = function () + config = function() require("nvim-treesitter.configs").setup({ ensure_installed = { "lua", @@ -81,4 +81,26 @@ return { main = "ibl", opts = {}, }, + + -- Floating terminal + { + "numToStr/FTerm.nvim", + config = function() + -- truly toggle floating terminal (auto closes floating terminal) + -- thank you: https://github.com/numToStr/FTerm.nvim/issues/78#issuecomment-1432326116 + local function create_autocmd(pattern, key, term) + vim.api.nvim_create_autocmd("FileType", { + pattern = pattern, + callback = function(event) + local t = term + vim.keymap.set("t", key, function() t:close() end, { buffer = event.buf, silent = true }) + end, + }) + end + + local fterm = require("FTerm") + fterm.setup({}) + create_autocmd("FTerm", "", fterm) + end + } } diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index 7c23c3a..b825a59 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -8,6 +8,7 @@ return { require("mason").setup() require("mason-lspconfig").setup({ -- Ensure the install of these language servers + -- :MasonInstall shellcheck black shfmt ensure_installed = { "lua_ls", "clangd", @@ -21,10 +22,14 @@ return { }) end, }, + { "neovim/nvim-lspconfig", lazy = false, config = function() + --vim.diagnostic.config({ virtual_lines = true }) + --vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled()) + local caps = vim.lsp.protocol.make_client_capabilities() local capabilities = require("blink.cmp").get_lsp_capabilities(caps) capabilities.textDocument.completion.completionItem.snippetSupport = true @@ -72,4 +77,18 @@ return { }) end, }, + + { + "mfussenegger/nvim-jdtls", + config = function() + vim.lsp.config("jdtls", { + settings = { + java = { + -- Custom eclipse.jdt.ls options go here + }, + }, + }) + vim.lsp.enable("jdtls") + end + } } diff --git a/lua/plugins/remote.lua b/lua/plugins/remote.lua new file mode 100644 index 0000000..65232e4 --- /dev/null +++ b/lua/plugins/remote.lua @@ -0,0 +1,12 @@ +return { + { + "amitds1997/remote-nvim.nvim", + version = "*", + dependencies = { + "nvim-lua/plenary.nvim", + "MunifTanjim/nui.nvim", + "nvim-telescope/telescope.nvim" + }, + config = true + } +}