From 122dc8bc892c37381d3e585dd69d793d02dab67b Mon Sep 17 00:00:00 2001 From: GMAXnoob <83890189+Gmaxnoob@users.noreply.github.com> Date: Sat, 1 Nov 2025 18:13:58 -0400 Subject: [PATCH 1/3] Started screwing around; added indentation rules --- init.lua | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/init.lua b/init.lua index b98ffc6198a..a51cf9a1230 100644 --- a/init.lua +++ b/init.lua @@ -107,10 +107,13 @@ vim.o.number = true -- Enable mouse mode, can be useful for resizing splits for example! vim.o.mouse = 'a' +-- Sets the theme to dark mode +vim.o.background = 'dark' + -- Don't show the mode, since it's already in the status line vim.o.showmode = false --- Sync clipboard between OS and Neovim. +-- Sync clipboard between OS a:nd Neovim. -- Schedule the setting after `UiEnter` because it can increase startup-time. -- Remove this option if you want your OS clipboard to remain independent. -- See `:help 'clipboard'` @@ -152,6 +155,11 @@ vim.o.splitbelow = true vim.o.list = true vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' } +vim.opt.expandtab = false +vim.opt.tabstop = 2 +vim.opt.shiftwidth = 2 +vim.opt.softtabstop = 2 + -- Preview substitutions live, as you type! vim.o.inccommand = 'split' @@ -202,7 +210,7 @@ vim.keymap.set('n', '', '', { desc = 'Move focus to the upper win -- NOTE: Some terminals have colliding keymaps or are not able to send distinct keycodes -- vim.keymap.set("n", "", "H", { desc = "Move window to the left" }) -- vim.keymap.set("n", "", "L", { desc = "Move window to the right" }) --- vim.keymap.set("n", "", "J", { desc = "Move window to the lower" }) +-- vim.keymap.set("n", "", "J",i { desc = "Move window to the lower" }) -- vim.keymap.set("n", "", "K", { desc = "Move window to the upper" }) -- [[ Basic Autocommands ]] From c109dcf3fc57f42d57b9cddec2d0aed4e4e8011c Mon Sep 17 00:00:00 2001 From: GMAXnoob <83890189+Gmaxnoob@users.noreply.github.com> Date: Sun, 2 Nov 2025 00:24:56 -0400 Subject: [PATCH 2/3] Added Neotree and Nvim-tree for file explorer, fixed Roblox luau-lsp on Neovim --- init.lua | 139 +++++++++++++++++++++++++++++++++--- lua/custom/plugins/init.lua | 4 +- 2 files changed, 134 insertions(+), 9 deletions(-) diff --git a/init.lua b/init.lua index a51cf9a1230..4aac9d7c6cc 100644 --- a/init.lua +++ b/init.lua @@ -98,6 +98,13 @@ vim.g.have_nerd_font = false -- NOTE: You can change these options as you wish! -- For more options, you can see `:help option-list` +-- disable netrw at the very start of your init.lua +vim.g.loaded_netrw = 1 +vim.g.loaded_netrwPlugin = 1 + +-- optionally enable 24-bit colour +vim.opt.termguicolors = true + -- Make line numbers default vim.o.number = true -- You can also add relative line numbers, to help with jumping. @@ -169,9 +176,9 @@ vim.o.cursorline = true -- Minimal number of screen lines to keep above and below the cursor. vim.o.scrolloff = 10 --- if performing an operation that would fail due to unsaved changes in the buffer (like `:q`), --- instead raise a dialog asking if you wish to save the current file(s) --- See `:help 'confirm'` +-- vs cresbezvat na bcrengvba gung jbhyq snvy qhr gb hafnirq punatrf va gur ohssre (yvxr `:d`), +-- vafgrnq envfr n qvnybt nfxvat vs lbh jvfu gb fnir gur pheerag svyr(f) +-- Frr `:uryc 'pbasvez'` vim.o.confirm = true -- [[ Basic Keymaps ]] @@ -183,7 +190,7 @@ vim.keymap.set('n', '', 'nohlsearch') -- Diagnostic keymaps vim.keymap.set('n', 'q', vim.diagnostic.setloclist, { desc = 'Open diagnostic [Q]uickfix list' }) - +vim.keymap.set('n', '', ':Neotree', { desc = 'Toggles Neotree' }) -- Exit terminal mode in the builtin terminal with a shortcut that is a bit easier -- for people to discover. Otherwise, you normally need to press , which -- is not what someone will guess without a bit more experience. @@ -216,6 +223,16 @@ vim.keymap.set('n', '', '', { desc = 'Move focus to the upper win -- [[ Basic Autocommands ]] -- See `:help lua-guide-autocommands` +vim.lsp.config('*', { + capabilities = { + workspace = { + didChangeWatchedFiles = { + dynamicRegistration = true, + }, + }, + }, +}) + -- Highlight when yanking (copying) text -- Try it with `yap` in normal mode -- See `:help vim.hl.on_yank()` @@ -238,6 +255,7 @@ if not (vim.uv or vim.loop).fs_stat(lazypath) then end end + ---@type vim.Option local rtp = vim.opt.rtp rtp:prepend(lazypath) @@ -256,7 +274,50 @@ rtp:prepend(lazypath) require('lazy').setup({ -- NOTE: Plugins can be added with a link (or for a github repo: 'owner/repo' link). 'NMAC427/guess-indent.nvim', -- Detect tabstop and shiftwidth automatically - + { + 'nvim-lualine/lualine.nvim', + dependencies = { 'nvim-tree/nvim-web-devicons' }, + config = function() + require('lualine').setup { + options = { + theme = 'tomorrow_night', + }, + } + end, + }, + { + "mason-org/mason-lspconfig.nvim", + opts = {}, + dependencies = { + { "mason-org/mason.nvim", opts = {} }, + "neovim/nvim-lspconfig", + }, + }, + { + 'lopi-py/luau-lsp.nvim', + opts = { + ..., + }, + dependencies = { + 'nvim-lua/plenary.nvim', + }, + }, + --[[{ + 'nvim-tree/nvim-tree.lua', + version = '*', + lazy = false, + dependencies = { + 'nvim-tree/nvim-web-devicons', + }, + config = function() + require('nvim-tree').setup { + view = { + width = 25, + }, + } + end, + },]] + -- -- NOTE: Plugins can also be added by using a table, -- with the first argument being the link and the following -- keys can be used to configure plugin behavior/loading/etc. @@ -525,7 +586,6 @@ require('lazy').setup({ -- -- If you're wondering about lsp vs treesitter, you can check out the wonderfully -- and elegantly composed help section, `:help lsp-vs-treesitter` - -- This function gets run when an LSP attaches to a particular buffer. -- That is to say, every time a new file is opened that is associated with -- an lsp (for example, opening `main.rs` is associated with `rust_analyzer`) this @@ -981,11 +1041,11 @@ require('lazy').setup({ -- Here are some example plugins that I've included in the Kickstart repository. -- Uncomment any of the lines below to enable them (you will need to restart nvim). -- - -- require 'kickstart.plugins.debug', + require 'kickstart.plugins.debug', -- require 'kickstart.plugins.indent_line', -- require 'kickstart.plugins.lint', -- require 'kickstart.plugins.autopairs', - -- require 'kickstart.plugins.neo-tree', + require 'kickstart.plugins.neo-tree', -- require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps -- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua` @@ -1020,5 +1080,68 @@ require('lazy').setup({ }, }) +vim.api.nvim_create_autocmd({ 'WinEnter', 'BufWinEnter' }, { + pattern = { 'NvimTree*' }, + callback = function() + vim.opt.guicursor = '' -- Hide the cursor + end, +}) + +vim.api.nvim_create_autocmd({ 'WinLeave', 'BufWinLeave' }, { + pattern = { 'NvimTree*' }, + callback = function() + -- Restore your desired cursor settings for other windows/buffers + -- Example: Restore default block cursor for normal mode + vim.opt.guicursor = 'n-v-c:block,i-ci-r:ver25,sm:block' + end, +}) + +vim.lsp.config('luau-lsp', { + settings = { + ['luau-lsp'] = { + completion = { + imports = { + enabled = true, -- enable auto imports + }, + }, + }, + }, +}) + +require('mason-lspconfig').setup { + automatic_enable = { + exclude = { 'luau_lsp' }, + }, + platform = { + type = 'roblox', + }, + types = { + roblox_security_level = 'PluginSecurity', + }, + sourcemap = { + enabled = true, + autogenerate = true, -- automatic generation when the server is initialized + rojo_project_file = 'default.project.json', + sourcemap_file = 'sourcemap.json', + }, +} + +require('luau-lsp').setup { + plugin = { + enabled = true, + port = 3667, + }, + fflags = { + enable_new_solver = true, -- enables the fflags required for luau's new type solver + sync = true, -- sync currently enabled fflags with roblox's published fflags + override = { -- override fflags passed to luau + LuauTableTypeMaximumStringifierLength = '100', + }, + }, +} + + + + -- The line beneath this is called `modeline`. See `:help modeline` -- vim: ts=2 sts=2 sw=2 et diff --git a/lua/custom/plugins/init.lua b/lua/custom/plugins/init.lua index be0eb9d8d7a..eb2c0df7907 100644 --- a/lua/custom/plugins/init.lua +++ b/lua/custom/plugins/init.lua @@ -2,4 +2,6 @@ -- I promise not to create any merge conflicts in this directory :) -- -- See the kickstart.nvim README for more information -return {} + +return { +} From 0f1bc61829f6fb88e5d339bdd01b3355c944b69d Mon Sep 17 00:00:00 2001 From: GMAXnoob <83890189+Gmaxnoob@users.noreply.github.com> Date: Sat, 20 Dec 2025 16:25:56 -0500 Subject: [PATCH 3/3] Added my custom theme, can definitely change in the future, want to work on implementing transparency effects to it at the moment. --- init.lua | 33 +++++++------ lua/custom/plugins/init.lua | 7 --- theme/colors/theme.lua | 1 + theme/lua/theme/init.lua | 92 +++++++++++++++++++++++++++++++++++++ 4 files changed, 111 insertions(+), 22 deletions(-) delete mode 100644 lua/custom/plugins/init.lua create mode 100644 theme/colors/theme.lua create mode 100644 theme/lua/theme/init.lua diff --git a/init.lua b/init.lua index 4aac9d7c6cc..5c464a11b1a 100644 --- a/init.lua +++ b/init.lua @@ -114,9 +114,6 @@ vim.o.number = true -- Enable mouse mode, can be useful for resizing splits for example! vim.o.mouse = 'a' --- Sets the theme to dark mode -vim.o.background = 'dark' - -- Don't show the mode, since it's already in the status line vim.o.showmode = false @@ -191,6 +188,7 @@ vim.keymap.set('n', '', 'nohlsearch') -- Diagnostic keymaps vim.keymap.set('n', 'q', vim.diagnostic.setloclist, { desc = 'Open diagnostic [Q]uickfix list' }) vim.keymap.set('n', '', ':Neotree', { desc = 'Toggles Neotree' }) +vim.keymap.set('n', '', ':colorscheme theme', { desc = 'Toggles the theme bc wow its annoying asf' }) -- Exit terminal mode in the builtin terminal with a shortcut that is a bit easier -- for people to discover. Otherwise, you normally need to press , which -- is not what someone will guess without a bit more experience. @@ -255,7 +253,6 @@ if not (vim.uv or vim.loop).fs_stat(lazypath) then end end - ---@type vim.Option local rtp = vim.opt.rtp rtp:prepend(lazypath) @@ -280,17 +277,17 @@ require('lazy').setup({ config = function() require('lualine').setup { options = { - theme = 'tomorrow_night', + theme = 'ayu_light', }, } end, }, { - "mason-org/mason-lspconfig.nvim", + 'mason-org/mason-lspconfig.nvim', opts = {}, dependencies = { - { "mason-org/mason.nvim", opts = {} }, - "neovim/nvim-lspconfig", + { 'mason-org/mason.nvim', opts = {} }, + 'neovim/nvim-lspconfig', }, }, { @@ -903,7 +900,7 @@ require('lazy').setup({ -- : Toggle signature help -- -- See :h blink-cmp-config-keymap for defining your own keymap - preset = 'default', + preset = 'super-tab', -- For more advanced Luasnip keymaps (e.g. selecting choice nodes, expansion) see: -- https://github.com/L3MON4D3/LuaSnip?tab=readme-ov-file#keymaps @@ -944,7 +941,7 @@ require('lazy').setup({ }, }, - { -- You can easily change to a different colorscheme. + --[[{ -- You can easily change to a different colorscheme. -- Change the name of the colorscheme plugin below, and then -- change the command in the config to whatever the name of that colorscheme is. -- @@ -962,9 +959,10 @@ require('lazy').setup({ -- Load the colorscheme here. -- Like many other themes, this one has different styles, and you could load -- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'. - vim.cmd.colorscheme 'tokyonight-night' + vim.cmd.colorscheme 'theme' end, - }, + },]] + -- -- Highlight todo, notes, etc in comments { 'folke/todo-comments.nvim', event = 'VimEnter', dependencies = { 'nvim-lua/plenary.nvim' }, opts = { signs = false } }, @@ -1031,7 +1029,6 @@ require('lazy').setup({ -- - Show your current context: https://github.com/nvim-treesitter/nvim-treesitter-context -- - Treesitter + textobjects: https://github.com/nvim-treesitter/nvim-treesitter-textobjects }, - -- The following comments only work if you have downloaded the kickstart repo, not just copy pasted the -- init.lua. If you want these files, they are in the repository, so you can just download them and -- place them in the correct locations. @@ -1058,6 +1055,9 @@ require('lazy').setup({ -- Or use telescope! -- In normal mode type `sh` then write `lazy.nvim-plugin` -- you can continue same window with `sr` which resumes last telescope search + { + dir = '~/AppData/Local/nvim/theme', + }, }, { ui = { -- If you are using a Nerd Font: set icons to an empty table which will use the @@ -1140,8 +1140,11 @@ require('luau-lsp').setup { }, } - - +vim.api.nvim_create_autocmd('Colorscheme', { + callback = function() + require('theme').setup() + end, +}) -- The line beneath this is called `modeline`. See `:help modeline` -- vim: ts=2 sts=2 sw=2 et diff --git a/lua/custom/plugins/init.lua b/lua/custom/plugins/init.lua deleted file mode 100644 index eb2c0df7907..00000000000 --- a/lua/custom/plugins/init.lua +++ /dev/null @@ -1,7 +0,0 @@ --- You can add your own plugins here or in other files in this directory! --- I promise not to create any merge conflicts in this directory :) --- --- See the kickstart.nvim README for more information - -return { -} diff --git a/theme/colors/theme.lua b/theme/colors/theme.lua new file mode 100644 index 00000000000..026475e4b38 --- /dev/null +++ b/theme/colors/theme.lua @@ -0,0 +1 @@ +require('theme').setup() diff --git a/theme/lua/theme/init.lua b/theme/lua/theme/init.lua new file mode 100644 index 00000000000..2828d6fe7bc --- /dev/null +++ b/theme/lua/theme/init.lua @@ -0,0 +1,92 @@ +local M = {} + +function M.setup() + local colors = { + purple = '#7f8cff', + black = '#000000', + white = '#ededed', + orange = '#ffaa00', + green = '#00c427', + red = '#e60000', + blue = '#00a6ff', + } + + local highlights = { + + Normal = { fg = colors.black, bg = colors.white }, + CursorLine = { bg = '#e6e6e6' }, + LineNr = { fg = colors.purple }, + + -- Neovim text configurations -- + Function = { fg = colors.purple }, + Identifier = { fg = colors.purple }, + MoreMsg = { fg = colors.purple }, + String = { fg = colors.purple }, + QuickFixLine = { fg = colors.purple }, + Question = { fg = colors.purple }, + + -- Other configuratiosn -- + Special = { fg = colors.purple }, + + -- Todo configurations -- + TodoFgTODO = { fg = colors.blue }, + TodoFgNOTE = { fg = colors.blue }, + + TodoBgTODO = { fg = colors.white, bg = colors.blue }, + TodoBgNOTE = { fg = colors.white, bg = colors.blue }, + + -- [ TREESITTER RELATED / TEXT CONFIGURATIONS ] -- + + -- Literals -- + ['@string'] = { fg = colors.purple }, + ['@boolean'] = { fg = colors.purple }, + ['@character'] = { fg = colors.purple }, + ['@number'] = { fg = colors.orange }, + + -- Identifiers -- + ['@variable'] = { fg = colors.black }, + ['@module'] = { fg = colors.black }, + + -- Types -- + ['@type'] = { fg = colors.purple }, + ['@property'] = { fg = colors.purple }, + + -- Keyword related -- + ['@keyword'] = { fg = colors.purple }, + + -- Comment related -- + ['@comment'] = { fg = colors.orange }, + ['@comment.warning'] = { fg = colors.orange }, + ['@comment.todo'] = { fg = colors.green }, + ['@comment.documentation'] = { fg = colors.blue }, + ['@comment.note'] = { fg = colors.blue }, + ['@comment.error'] = { fg = colors.red }, + + -- Functions -- + ['@function'] = { fg = colors.purple }, + ['@function.builtin'] = { fg = colors.black }, + ['@constructor'] = { fg = colors.black }, + ['@operator'] = { fg = colors.black }, + + -- Punctuation -- + ['@punctuation'] = { fg = colors.black }, + + -- [ NEOTREE COLOR CONFIGURATIONS ] -- + Removed = { fg = colors.red }, + NeoTreeGitUntracked = { fg = colors.purple }, + Changed = { fg = colors.purple }, + Directory = { fg = colors.purple }, + Added = { fg = colors.green }, + + -- Diagnostic colors -- + DiagnosticInfo = { fg = colors.purple }, + DiagnosticOk = { fg = colors.purple }, + DiagnosticWarn = { fg = colors.orange }, + } + + for group, opts in pairs(highlights) do + vim.api.nvim_set_hl(0, group, opts) + end +end + +return M