import { CacheVisibility } from '.'; import { DataSource } from '../data/VanillaData'; import { CommandTreeVersion } from './CommandTreeVersion'; import { NamingConventionConfig } from './NamingConventionConfig'; import { QuoteTypeConfig } from './QuoteTypeConfig'; import { StrictCheckConfig } from './StrictCheckConfig'; import { BracketSpacingConfig, DiagnosticConfig, SepSpacingConfig } from './StylisticConfig'; export interface Config { /** * Runtime environment. */ env: EnvConfig; /** * Lint rules. */ lint: LintConfig; /** * Settings for language server features. */ features: FeaturesConfig; /** * Code snippets. */ snippets: SnippetsConfig; } export interface EnvConfig { permissionLevel: 1 | 2 | 3 | 4; cmdVersion: CommandTreeVersion; dataSource: DataSource; dataVersion: string; defaultVisibility: 'private' | 'internal' | 'public' | CacheVisibility | CacheVisibility[]; dependsOnVanilla: boolean; detectionDepth: number; exclude: string[]; include: string[]; language: string; } export interface LintConfig { blockStateBracketSpacing: BracketSpacingConfig; blockStateCommaSpacing: SepSpacingConfig; blockStateEqualSpacing: SepSpacingConfig; blockStateTrailingComma: boolean; eol: 'auto' | 'CRLF' | 'LF'; nbtArrayBracketSpacing: BracketSpacingConfig; nbtArrayCommaSpacing: SepSpacingConfig; nbtArraySemicolonSpacing: { after: number; }; nbtArrayTrailingComma: boolean; nbtByteSuffix: 'b' | 'B'; nbtCompoundBracketSpacing: BracketSpacingConfig; nbtCompoundColonSpacing: SepSpacingConfig; nbtCompoundCommaSpacing: SepSpacingConfig; nbtCompoundTrailingComma: boolean; nbtDoubleOmitSuffix: boolean; nbtDoubleSuffix: 'd' | 'D'; nbtFloatSuffix: 'f' | 'F'; nbtListBracketSpacing: BracketSpacingConfig; nbtListCommaSpacing: SepSpacingConfig; nbtListTrailingComma: boolean; nbtLongSuffix: 'l' | 'L'; nbtShortSuffix: 's' | 'S'; selectorBracketSpacing: BracketSpacingConfig; selectorCommaSpacing: SepSpacingConfig; selectorEqualSpacing: SepSpacingConfig; selectorTrailingComma: boolean; timeOmitTickUnit: boolean; blockStateSortKeys: DiagnosticConfig<'alphabetically'>; idOmitDefaultNamespace: DiagnosticConfig; nameOfObjectives: DiagnosticConfig; nameOfNbtCompoundTagKeys: DiagnosticConfig; nameOfTags: DiagnosticConfig; nameOfTeams: DiagnosticConfig; nameOfScoreHolders: DiagnosticConfig; nbtArrayLengthCheck: DiagnosticConfig; nbtBoolean: DiagnosticConfig; nbtCompoundKeyQuote: DiagnosticConfig; nbtCompoundKeyQuoteType: DiagnosticConfig; nbtCompoundSortKeys: DiagnosticConfig<'alphabetically' | 'nbtdoc'>; nbtListLengthCheck: DiagnosticConfig; nbtPathQuote: DiagnosticConfig; nbtPathQuoteType: DiagnosticConfig<'always double'>; nbtStringQuote: DiagnosticConfig; nbtStringQuoteType: DiagnosticConfig; nbtTypeCheck: DiagnosticConfig<'strictly' | 'loosely'>; selectorSortKeys: DiagnosticConfig; selectorKeyQuote: DiagnosticConfig; selectorKeyQuoteType: DiagnosticConfig; strictAdvancementCheck: DiagnosticConfig; strictBlockTagCheck: DiagnosticConfig; strictBossbarCheck: DiagnosticConfig; strictEntityTypeTagCheck: DiagnosticConfig; strictFluidTagCheck: DiagnosticConfig; strictFunctionCheck: DiagnosticConfig; strictFunctionTagCheck: DiagnosticConfig; strictItemTagCheck: DiagnosticConfig; strictLootTableCheck: DiagnosticConfig; strictObjectiveCheck: DiagnosticConfig; strictPredicateCheck: DiagnosticConfig; strictRecipeCheck: DiagnosticConfig; strictScoreHolderCheck: DiagnosticConfig; strictStorageCheck: DiagnosticConfig; strictTagCheck: DiagnosticConfig; strictTeamCheck: DiagnosticConfig; strictAttributeCheck: DiagnosticConfig; strictBlockCheck: DiagnosticConfig; strictDimensionTypeCheck: DiagnosticConfig; strictEnchantmentCheck: DiagnosticConfig; strictEntityTypeCheck: DiagnosticConfig; strictFluidCheck: DiagnosticConfig; strictItemCheck: DiagnosticConfig; strictMobEffectCheck: DiagnosticConfig; strictMotiveCheck: DiagnosticConfig; strictParticleTypeCheck: DiagnosticConfig; strictPotionCheck: DiagnosticConfig; strictSoundEventCheck: DiagnosticConfig; stringQuote: DiagnosticConfig; stringQuoteType: DiagnosticConfig; } export interface FeaturesConfig { /** * Whether DHP should provide code actions or not. */ codeActions: boolean; /** * Whether DHP should provide color supports or not. */ colors: boolean; /** * Whether DHP should provide completions or not. */ completions: boolean; /** * Whether DHP should provide document highlighting or not. */ documentHighlighting: boolean; /** * Whether DHP should provide document links or not. */ documentLinks: boolean; /** * Whether DHP should provide folding ranges or not. */ foldingRanges: boolean; /** * Whether DHP should provide formatting feature or not. */ formatting: boolean; /** * Whether DHP should provide hover information or not. */ hover: boolean; /** * Whether DHP should provide semantic coloring or not. */ semanticColoring: boolean; /** * Whether DHP should provide selection ranges or not. */ selectionRanges: boolean; /** * Whether DHP should provide signature information for commands or not. */ signatures: boolean; } export interface SnippetsConfig { [label: string]: string; } /** * Config which simulates the default vanilla command system. */ export declare const VanillaConfig: Config; export declare function constructConfig(custom: { [key: string]: any; }, base?: Config): Config; export declare function isRelIncluded(rel: string | undefined, { env: { include, exclude } }: Config): boolean;