Skip to content

Commit

Permalink
chore(monaco-language-provider): export nodeToColorTokens
Browse files Browse the repository at this point in the history
  • Loading branch information
rycont authored Jan 11, 2025
1 parent 8af0c2b commit ce5099e
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 74 deletions.
71 changes: 71 additions & 0 deletions monaco-language-provider/language.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
import { languages, editor } from 'monaco-editor'
import { LANG_ID } from './const.ts'
import { BaseProvider } from './provider/base.ts'
import {
CompletionItemProvider,
setupCompletion,
} from './provider/completion-item.ts'
import { TokensProvider } from './provider/tokens.ts'

export class DalbitYaksokApplier {
baseProvider: BaseProvider

tokensProvider: TokensProvider
completionItemProvider: CompletionItemProvider

constructor(initialCode: string) {
this.baseProvider = new BaseProvider(initialCode)

this.tokensProvider = new TokensProvider(this.baseProvider)
this.completionItemProvider = new CompletionItemProvider(
this.baseProvider,
)
}

public async register(languagesInstance: typeof languages) {
languagesInstance.register({ id: LANG_ID })

await new Promise<void>((resolve) =>
languagesInstance.onLanguage(LANG_ID, resolve),
)

languagesInstance.setLanguageConfiguration(LANG_ID, {
comments: {
lineComment: '#',
},
brackets: [
['{', '}'],
['[', ']'],
['(', ')'],
],
autoClosingPairs: [
{ open: '{', close: '}' },
{ open: '[', close: ']' },
{ open: '(', close: ')' },
{ open: '"', close: '"', notIn: ['string'] },
{ open: "'", close: "'", notIn: ['string'] },
],
surroundingPairs: [
{ open: '{', close: '}' },
{ open: '[', close: ']' },
{ open: '(', close: ')' },
{ open: '"', close: '"' },
{ open: "'", close: "'" },
],
})

languagesInstance.setTokensProvider(LANG_ID, this.tokensProvider)
languagesInstance.registerCompletionItemProvider(
LANG_ID,
this.completionItemProvider,
)
}

public configAutocomplete(editorInstance: editor.IStandaloneCodeEditor) {
setupCompletion(editorInstance)
}

updateCode(code: string) {
this.baseProvider.updateCode(code)
}
}
77 changes: 3 additions & 74 deletions monaco-language-provider/mod.ts
Original file line number Diff line number Diff line change
@@ -1,74 +1,3 @@
import type { languages, editor } from 'monaco-editor'

import { BaseProvider } from './provider/base.ts'
import { TokensProvider } from './provider/tokens.ts'
import {
CompletionItemProvider,
setupCompletion,
} from './provider/completion-item.ts'
import { LANG_ID } from './const.ts'

export class DalbitYaksokApplier {
baseProvider: BaseProvider

tokensProvider: TokensProvider
completionItemProvider: CompletionItemProvider

constructor(initialCode: string) {
this.baseProvider = new BaseProvider(initialCode)

this.tokensProvider = new TokensProvider(this.baseProvider)
this.completionItemProvider = new CompletionItemProvider(
this.baseProvider,
)
}

public async register(languagesInstance: typeof languages) {
languagesInstance.register({ id: LANG_ID })

await new Promise<void>((resolve) =>
languagesInstance.onLanguage(LANG_ID, resolve),
)

languagesInstance.setLanguageConfiguration(LANG_ID, {
comments: {
lineComment: '#',
},
brackets: [
['{', '}'],
['[', ']'],
['(', ')'],
],
autoClosingPairs: [
{ open: '{', close: '}' },
{ open: '[', close: ']' },
{ open: '(', close: ')' },
{ open: '"', close: '"', notIn: ['string'] },
{ open: "'", close: "'", notIn: ['string'] },
],
surroundingPairs: [
{ open: '{', close: '}' },
{ open: '[', close: ']' },
{ open: '(', close: ')' },
{ open: '"', close: '"' },
{ open: "'", close: "'" },
],
})

languagesInstance.setTokensProvider(LANG_ID, this.tokensProvider)
languagesInstance.registerCompletionItemProvider(
LANG_ID,
this.completionItemProvider,
)
}

public configAutocomplete(editorInstance: editor.IStandaloneCodeEditor) {
setupCompletion(editorInstance, this.baseProvider)
}

updateCode(code: string) {
this.baseProvider.updateCode(code)
}
}

export { LANG_ID }
export { DalbitYaksokApplier } from './language.ts'
export { LANG_ID } from './const.ts'
export { nodeToColorTokens } from './ast-to-colorize/index.ts'

0 comments on commit ce5099e

Please sign in to comment.