Skip to content

About

A plugin to improve the development experience in Luau

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

Luau LSP

Luau lsp extension with fully luau support!

Usage

You should use require("luau-lsp.server").setup {} instead of lspconfig.luau_lsp.setup {}

mason-lspconfig.nvim
require("mason-lspconfig").setup_handlers {
  luau_lsp = function()
    -- use this function like require("lspconfig").luau_lsp.setup { ... }
    require("luau-lsp.server").setup {
      filetypes = { "lua", "luau" }, -- default is { "luau" }
      settings = {
        ["luau-lsp"] = {
          ...,
        },
      },
    }
  end,
}

Treesitter

Note that nvim-treesitter has its own luau parser but causes some conflicts, so the following line is required

require("luau-lsp").treesitter() -- required

-- treesitter configs here

:TSInstall luau

Roblox

This plugin also supports roblox environment:

require("luau-lsp.server").setup {
  settings = {
    ["luau-lsp"] = {
      sourcemap = {
        enable = true, -- enable sourcemap generation
        autogenerate = true, -- auto generate sourcemap with rojo's sourcemap watcher
      },
      types = {
        roblox = true, -- enable roblox api
      },
    },
  },
}

Adding definition files

require("luau-lsp.server").setup {
  settings = {
    ["luau-lsp"] = {
      types = {
        definitionFiles = { "testez.d.luau", "path/to/definition/file" },
        documentationFiles = { "path/to/documentation/file" },
      },
    },
  },
}

Override Luau FFLags

require("luau-lsp.server").setup {
  settings = {
    ["luau-lsp"] = {
      fflags = {
        override = {
          LuauTarjanChildLimit = 0,
        },
      },
    },
  },
}

Auto Imports

require("luau-lsp.server").setup {
  settings = {
    ["luau-lsp"] = {
      completion = {
        imports = {
          enabled = true,
        },
      },
    },
  },
}

See this schema for full luau-lsp. options

Credits

TODO

  • Add some way to set local configs, might be useful for luau-lsp.types or luau-lsp.sourcemap.rojoProjectFile you probably want :help 'exrc'
  • Add a github action to sync queries and parser's revision

About

A plugin to improve the development experience in Luau

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages