import {IRawGrammar} from 'vscode-textmate'; // vscode-textmate doesn't expose anything else so fine we'll do it ourselves type AllOptionalWritable = { -readonly [K in keyof T]?: T[K] }; export type Overwrite = { [K in keyof (T & U)]: K extends keyof U ? U[K] : K extends keyof T ? T[K] : never; }; type RemoveLocation = Omit; type Cleanup = AllOptionalWritable< RemoveLocation> >; type IRawRepository = IRawGrammar['repository']; type IRawRule = IRawRepository[string]; type IRawCaptures = NonNullable; export type Captures = Cleanup; export type Rule = Cleanup; export type Repository = Cleanup; export type Grammar = Cleanup;