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
}
]
}
}