This is a Language Service plugin that improves the editing experience while using roblox-ts.
- Remove or prefix cross-boundary imports in intellisense.
- Warn about non-type only cross-boundary imports.
- Remove internal fields from roblox-ts types.
- Remove deprecated entries from intellisense.
- Remove @hidden entries from intellisense.
If you use Visual Studio Code, it's recommended that you install this using our extension.
You install this like you would any npm package.
npm install --save-dev roblox-ts-extensions
To enable the plugin and configure it, please look to the sections below.
interface PluginConfig {
// The directories to be determined client-sided. Rojo is preferred, however these can override Rojo if necessary.
// Default: []
client: string | string[];
// The directories to be determined server-sided. Rojo is preferred, however these can override Rojo if necessary.
// Default: []
server: string | string[];
// The autocomplete mode to use.
// Prefix: Prefixes completes with their network boundary, and makes cross-boundary (client<->server, shared->client/server) imports type only.
// Remove: Removes any cross-boundary imports entirely. Does not affect manual imports or existing imports.
// Default: prefix
mode: "prefix" | "remove";
// Whether to use Rojo to calculate server/client boundaries. The client and server properties can override certain directories if necessary.
// Default: true
useRojo: boolean;
// What should non-type only cross-boundary imports be flagged as.
// Set to off to disable diagnostics.
// Default: warning
diagnosticsMode: "off" | "warning" | "error" | "message";
}To enable the plugin, add the following "plugins" field to your tsconfig's compilerOptions. You can configure the plugin however you'd like, as shown above.
{ "compilerOptions": { // ... "plugins": [ { "name": "roblox-ts-extensions", // All the following fields are optional and will use their defaults if omitted. "client": [], "server": [], "mode": "prefix", "useRojo": true } ] } }