roblox-ts-extensions
v1.8.1
Published
A Language Service plugin to emphasize the client/server network boundary when using roblox-ts.
Downloads
25
Readme
roblox-ts Extensions
This is a Language Service plugin that improves the editing experience while using roblox-ts.
Features
- 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.
Visual Studio Code
If you use Visual Studio Code, it's recommended that you install this using our extension.
Installation
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.
Configuration
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";
}
Enabling
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
}
]
}
}