1- --[[
1+ --[[
22
33=====================================================================
44==================== READ THIS BEFORE CONTINUING ====================
@@ -478,6 +478,7 @@ require('lazy').setup({
478478 {
479479 -- Main LSP Configuration
480480 ' neovim/nvim-lspconfig' ,
481+ version = ' v2.*' ,
481482 dependencies = {
482483 -- Automatically install LSPs and related tools to stdpath for Neovim
483484 -- Mason must be loaded before its dependents so we need to set it up here.
@@ -680,9 +681,15 @@ require('lazy').setup({
680681 -- Some languages (like typescript) have entire language plugins that can be useful:
681682 -- https://github.com/pmizio/typescript-tools.nvim
682683 --
683- -- But for many setups, the LSP (`ts_ls`) will work just fine
684- -- ts_ls = {},
685- --
684+ -- But for many setups, the LSP (`tsserver`) will work just fine
685+ -- tsserver = {},
686+
687+ tsserver = {},
688+ eslint = {},
689+ html = {},
690+ cssls = {},
691+ jsonls = {},
692+ tailwindcss = {},
686693
687694 lua_ls = {
688695 -- cmd = { ... },
@@ -713,9 +720,17 @@ require('lazy').setup({
713720 --
714721 -- You can add other tools here that you want Mason to install
715722 -- for you, so that they are available from within Neovim.
723+ local mason_map = {
724+ tsserver = ' typescript-language-server' ,
725+ }
726+
716727 local ensure_installed = vim .tbl_keys (servers or {})
728+ ensure_installed = vim .tbl_map (function (server )
729+ return mason_map [server ] or server
730+ end , ensure_installed )
717731 vim .list_extend (ensure_installed , {
718732 ' stylua' , -- Used to format Lua code
733+ ' prettier' , -- Web formatter
719734 })
720735 require (' mason-tool-installer' ).setup { ensure_installed = ensure_installed }
721736
@@ -768,6 +783,18 @@ require('lazy').setup({
768783 end ,
769784 formatters_by_ft = {
770785 lua = { ' stylua' },
786+ javascript = { ' prettier' },
787+ javascriptreact = { ' prettier' },
788+ typescript = { ' prettier' },
789+ typescriptreact = { ' prettier' },
790+ json = { ' prettier' },
791+ jsonc = { ' prettier' },
792+ yaml = { ' prettier' },
793+ markdown = { ' prettier' },
794+ html = { ' prettier' },
795+ css = { ' prettier' },
796+ scss = { ' prettier' },
797+ less = { ' prettier' },
771798 -- Conform can also run multiple formatters sequentially
772799 -- python = { "isort", "black" },
773800 --
@@ -894,13 +921,106 @@ require('lazy').setup({
894921 -- Load the colorscheme here.
895922 -- Like many other themes, this one has different styles, and you could load
896923 -- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'.
897- vim .cmd .colorscheme ' tokyonight-night '
924+ vim .cmd .colorscheme ' tokyonight-storm '
898925 end ,
899926 },
900927
901928 -- Highlight todo, notes, etc in comments
902929 { ' folke/todo-comments.nvim' , event = ' VimEnter' , dependencies = { ' nvim-lua/plenary.nvim' }, opts = { signs = false } },
903930
931+ { -- Yazi file manager integration
932+ ' mikavilpas/yazi.nvim' ,
933+ version = ' *' ,
934+ dependencies = {
935+ { ' nvim-lua/plenary.nvim' , lazy = true },
936+ },
937+ keys = {
938+ {
939+ ' -' ,
940+ ' <cmd>Yazi<cr>' ,
941+ desc = ' Open Yazi' ,
942+ mode = ' n' ,
943+ },
944+ },
945+ opts = {
946+ open_for_directories = false ,
947+ floating_window_scaling_factor = 0.9 ,
948+ },
949+ },
950+
951+ { -- Auto pairs for brackets/quotes
952+ ' windwp/nvim-autopairs' ,
953+ event = ' InsertEnter' ,
954+ opts = {},
955+ },
956+
957+ { -- Colorize CSS/Hex colors
958+ ' NvChad/nvim-colorizer.lua' ,
959+ event = ' BufReadPre' ,
960+ opts = {
961+ filetypes = { ' css' , ' scss' , ' less' , ' html' , ' tsx' , ' jsx' },
962+ user_default_options = {
963+ tailwind = true ,
964+ },
965+ },
966+ },
967+
968+ { -- Tailwind class helpers
969+ ' luckasRanarison/tailwind-tools.nvim' ,
970+ name = ' tailwind-tools' ,
971+ event = ' BufReadPre' ,
972+ dependencies = {
973+ ' nvim-treesitter/nvim-treesitter' ,
974+ ' neovim/nvim-lspconfig' ,
975+ },
976+ opts = {
977+ document_color = {
978+ enabled = true ,
979+ },
980+ },
981+ },
982+
983+ { -- VSCode-like indent guides
984+ ' lukas-reineke/indent-blankline.nvim' ,
985+ main = ' ibl' ,
986+ event = ' BufReadPre' ,
987+ opts = {
988+ indent = { char = ' │' },
989+ scope = { enabled = true },
990+ },
991+ },
992+
993+ { -- Minimal statusline
994+ ' nvim-lualine/lualine.nvim' ,
995+ event = ' VimEnter' ,
996+ dependencies = { ' nvim-tree/nvim-web-devicons' },
997+ opts = {
998+ options = {
999+ theme = ' tokyonight' ,
1000+ globalstatus = true ,
1001+ section_separators = ' ' ,
1002+ component_separators = ' ' ,
1003+ },
1004+ sections = {
1005+ lualine_a = { ' mode' },
1006+ lualine_b = { ' branch' },
1007+ lualine_c = { { ' filename' , path = 1 } },
1008+ lualine_x = { ' diagnostics' },
1009+ lualine_y = { ' filetype' },
1010+ lualine_z = { ' location' },
1011+ },
1012+ },
1013+ },
1014+
1015+ { -- Sticky context like VSCode breadcrumbs
1016+ ' nvim-treesitter/nvim-treesitter-context' ,
1017+ event = ' BufReadPre' ,
1018+ opts = {
1019+ max_lines = 3 ,
1020+ trim_scope = ' outer' ,
1021+ },
1022+ },
1023+
9041024 { -- Collection of various small independent plugins/modules
9051025 ' echasnovski/mini.nvim' ,
9061026 config = function ()
@@ -919,21 +1039,6 @@ require('lazy').setup({
9191039 -- - sr)' - [S]urround [R]eplace [)] [']
9201040 require (' mini.surround' ).setup ()
9211041
922- -- Simple and easy statusline.
923- -- You could remove this setup call if you don't like it,
924- -- and try some other statusline plugin
925- local statusline = require ' mini.statusline'
926- -- set use_icons to true if you have a Nerd Font
927- statusline .setup { use_icons = vim .g .have_nerd_font }
928-
929- -- You can configure sections in the statusline by overriding their
930- -- default behavior. For example, here we set the section for
931- -- cursor location to LINE:COLUMN
932- --- @diagnostic disable-next-line : duplicate-set-field
933- statusline .section_location = function ()
934- return ' %2l:%-2v'
935- end
936-
9371042 -- ... and there is more!
9381043 -- Check out: https://github.com/echasnovski/mini.nvim
9391044 end ,
@@ -944,7 +1049,28 @@ require('lazy').setup({
9441049 main = ' nvim-treesitter.configs' , -- Sets main module to use for opts
9451050 -- [[ Configure Treesitter ]] See `:help nvim-treesitter`
9461051 opts = {
947- ensure_installed = { ' bash' , ' c' , ' diff' , ' html' , ' lua' , ' luadoc' , ' markdown' , ' markdown_inline' , ' query' , ' vim' , ' vimdoc' },
1052+ ensure_installed = {
1053+ ' bash' ,
1054+ ' c' ,
1055+ ' css' ,
1056+ ' diff' ,
1057+ ' dockerfile' ,
1058+ ' html' ,
1059+ ' javascript' ,
1060+ ' json' ,
1061+ ' jsonc' ,
1062+ ' lua' ,
1063+ ' luadoc' ,
1064+ ' markdown' ,
1065+ ' markdown_inline' ,
1066+ ' query' ,
1067+ ' toml' ,
1068+ ' tsx' ,
1069+ ' typescript' ,
1070+ ' vim' ,
1071+ ' vimdoc' ,
1072+ ' yaml' ,
1073+ },
9481074 -- Autoinstall languages that are not installed
9491075 auto_install = true ,
9501076 highlight = {
0 commit comments