Install lunarvim dan cara configurasinya


TlawXp - Pasti kalian bosan dengan code editor itu" aja kan, nahh mimin ada solusi nih biar code editor kalian lebih menarik dan bagus, sebelum mau ikutin langkah" tutorialnya alangkah baiknya utamakan membaca dulu jangan main skip aja.

Apa itu lunarvim

LunarVim adalah layer IDE untuk Neovim yang bersifat gratis dan dikelola oleh komunitas. LunarVim mendukung semua bahasa utama dengan memanfaatkan beberapa plugin di ekosistem Neovim.

Apa saja fitur lunarvim

LunarVim memiliki beberapa fitur, di antaranya:
  • Autocompletion
  • Integrated terminal
  • File explorer
  • Fuzzy finder
  • LSP
  • Linting
  • Formatting
  • Debugging
informasi dari bah google

Instalasi Lunarvim

pkg install neovim
pkg install nodejs make git lazygit python php rust
bash <(curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/master/utils/installer/install.sh)
Jika sudah selesai instalasinya, kalian ketik lvim di terminal kalian, contoh.
lvim
Ketika kalian masuk kelunarvim, otomatis lunarvim menginstall plugin dengan sendirinya, kalian tunggu saja sampe selesai instalasi.

Jika sudah selesai instalasinya, ketik
:LspInstall html jsonls cssls emmet_ls tsserver intelephense tailwindcss black pyright
Tunggu instalasi sampe selesai.

Configurasi

Masuk ke directory .config/lvim, edit file config.lua, copy script di bawah lalu pastekan ke config.lua.
--[[
 THESE ARE EXAMPLE CONFIGS FEEL FREE TO CHANGE TO WHATEVER YOU WANT
 `lvim` is the global options object
]]
-- vim options
vim.opt.shiftwidth = 2
vim.opt.tabstop = 2
vim.opt.relativenumber = true
vim.opt.wrap = true

-- general
lvim.log.level = "info"
lvim.format_on_save = {
  enabled = true,
  pattern = "*.lua",
  timeout = 1000,
}
-- to disable icons and use a minimalist setup, uncomment the following
-- lvim.use_icons = false

-- keymappings <https://www.lunarvim.org/docs/configuration/keybindings>
lvim.leader = "space"
-- add your own keymapping
lvim.keys.normal_mode["<C-s>"] = ":w<cr>"

-- lvim.keys.normal_mode["<S-l>"] = ":BufferLineCycleNext<CR>"
-- lvim.keys.normal_mode["<S-h>"] = ":BufferLineCyclePrev<CR>"

-- -- Use which-key to add extra bindings with the leader-key prefix
-- lvim.builtin.which_key.mappings["W"] = { "<cmd>noautocmd w<cr>", "Save without formatting" }
-- lvim.builtin.which_key.mappings["P"] = { "<cmd>Telescope projects<CR>", "Projects" }

-- -- Change theme settings
-- lvim.colorscheme = "lunar"

lvim.builtin.alpha.active = true
lvim.builtin.alpha.mode = "dashboard"
lvim.builtin.terminal.active = true
lvim.builtin.nvimtree.setup.view.side = "left"
lvim.builtin.nvimtree.setup.renderer.icons.show.git = true
lvim.transparent_window = true

-- Automatically install missing parsers when entering buffer
lvim.builtin.treesitter.auto_install = true

-- lvim.builtin.treesitter.ignore_install = { "haskell" }

-- -- always installed on startup, useful for parsers without a strict filetype
-- lvim.builtin.treesitter.ensure_installed = { "comment", "markdown_inline", "regex" }

-- -- generic LSP settings <https://www.lunarvim.org/docs/languages#lsp-support>

-- --- disable automatic installation of servers
-- lvim.lsp.installer.setup.automatic_installation = false

-- ---configure a server manually. IMPORTANT: Requires `:LvimCacheReset` to take effect
-- ---see the full default list `:lua =lvim.lsp.automatic_configuration.skipped_servers`
-- vim.list_extend(lvim.lsp.automatic_configuration.skipped_servers, { "pyright" })
-- local opts = {} -- check the lspconfig documentation for a list of all possible options
-- require("lvim.lsp.manager").setup("pyright", opts)

-- ---remove a server from the skipped list, e.g. eslint, or emmet_ls. IMPORTANT: Requires `:LvimCacheReset` to take effect
-- ---`:LvimInfo` lists which server(s) are skipped for the current filetype
-- lvim.lsp.automatic_configuration.skipped_servers = vim.tbl_filter(function(server)
--   return server ~= "emmet_ls"
-- end, lvim.lsp.automatic_configuration.skipped_servers)

-- -- you can set a custom on_attach function that will be used for all the language servers
-- -- See <https://github.com/neovim/nvim-lspconfig#keybindings-and-completion>
-- lvim.lsp.on_attach_callback = function(client, bufnr)
--   local function buf_set_option(...)
--     vim.api.nvim_buf_set_option(bufnr, ...)
--   end
--   --Enable completion triggered by <c-x><c-o>
--   buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc")
-- end

-- -- linters and formatters <https://www.lunarvim.org/docs/languages#lintingformatting>
-- local formatters = require "lvim.lsp.null-ls.formatters"
-- formatters.setup {
--   { command = "stylua" },
--   {
--     command = "prettier",
--     extra_args = { "--print-width", "100" },
--     filetypes = { "typescript", "typescriptreact" },
--   },
-- }
-- local linters = require "lvim.lsp.null-ls.linters"
-- linters.setup {
--   { command = "flake8", filetypes = { "python" } },
--   {
--     command = "shellcheck",
--     args = { "--severity", "warning" },
--   },
-- }

-- -- Additional Plugins <https://www.lunarvim.org/docs/plugins#user-plugins>
-- lvim.plugins = {
--     {
--       "folke/trouble.nvim",
--       cmd = "TroubleToggle",
--     },
-- }

-- -- Autocommands (`:help autocmd`) <https://neovim.io/doc/user/autocmd.html>
-- vim.api.nvim_create_autocmd("FileType", {
--   pattern = "zsh",
--   callback = function()
--     -- let treesitter use bash highlight for zsh files as well
--     require("nvim-treesitter.highlight").attach(0, "bash")
--   end,
-- })
--



-- if you don't want all the parsers change this to a table of the ones you want
lvim.builtin.treesitter.ensure_installed = {
  "bash",
  "c",
  "javascript",
  "json",
  "lua",
  "python",
  "typescript",
  "tsx",
  "css",
  "rust",
  "java",
  "yaml",
}

lvim.builtin.treesitter.ignore_install = { "haskell" }
lvim.builtin.treesitter.highlight.enable = true

-- lsp installer
lvim.lsp.installer.setup.ensure_installed = {
--  "sumneko_lua",
  "jsonls",
  "html",
  "cssls",
  "emmet_ls",
  "tsserver",
  "intelephense",
  "tailwindcss",
}

local formatters = require "lvim.lsp.null-ls.formatters"
formatters.setup {
  { command = "stylua",  filetype = { "lua" } },
  { command = "prettier" },
  { command = "black" },
  -- { command = "blade_formatter", filetype = { "php", "blade", "blade.php" } },
  -- { command = "google_java_format", filetypes = { "java" } },
  -- { command = "dart_format" },
}

-- linter config
--local linters = require "lvim.lsp.null-ls.linters"
--linters.setup {
--  { command = "flake8" },
--}

require("lvim.lsp.manager").setup("emmet_ls")
require("lvim.lsp.manager").setup("tailwindcss")
require("lvim.lsp.manager").setup("intelephense")
Pakai configurasi ini Opsional.

Penutup

Sekian dari saya, semoga bermanfaat buat kalian, jangan lupa kunjungi tutorial lainnya di blog ini.

DotyCat - Teaching is Our Passion

Cookies Consent

This website uses cookies to offer you a better Browsing Experience. By using our website, You agree to the use of Cookies

Learn More