monaco-editor-core 0.55.0-dev-20251022 → 0.55.0-dev-20251024

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/esm/nls.keys.json +1 -1
  2. package/esm/nls.messages.cs.js +2 -2
  3. package/esm/nls.messages.de.js +2 -2
  4. package/esm/nls.messages.es.js +2 -2
  5. package/esm/nls.messages.fr.js +2 -2
  6. package/esm/nls.messages.it.js +2 -2
  7. package/esm/nls.messages.ja.js +2 -2
  8. package/esm/nls.messages.js +1 -1
  9. package/esm/nls.messages.json +1 -1
  10. package/esm/nls.messages.ko.js +2 -2
  11. package/esm/nls.messages.pl.js +2 -2
  12. package/esm/nls.messages.pt-br.js +2 -2
  13. package/esm/nls.messages.ru.js +2 -2
  14. package/esm/nls.messages.tr.js +2 -2
  15. package/esm/nls.messages.zh-cn.js +2 -2
  16. package/esm/nls.messages.zh-tw.js +2 -2
  17. package/esm/nls.metadata.json +6 -0
  18. package/esm/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
  19. package/esm/vs/base/browser/ui/iconLabel/iconlabel.css +2 -0
  20. package/esm/vs/base/browser/ui/list/listPaging.js +5 -1
  21. package/esm/vs/base/browser/ui/list/listPaging.js.map +1 -1
  22. package/esm/vs/base/browser/ui/list/listView.js +4 -3
  23. package/esm/vs/base/browser/ui/list/listView.js.map +1 -1
  24. package/esm/vs/base/browser/ui/toggle/toggle.js +2 -2
  25. package/esm/vs/base/browser/ui/toggle/toggle.js.map +1 -1
  26. package/esm/vs/base/browser/ui/tree/compressedObjectTreeModel.js +7 -0
  27. package/esm/vs/base/browser/ui/tree/compressedObjectTreeModel.js.map +1 -1
  28. package/esm/vs/base/browser/ui/tree/objectTree.js +3 -0
  29. package/esm/vs/base/browser/ui/tree/objectTree.js.map +1 -1
  30. package/esm/vs/base/browser/ui/tree/objectTreeModel.js +20 -0
  31. package/esm/vs/base/browser/ui/tree/objectTreeModel.js.map +1 -1
  32. package/esm/vs/base/common/arrays.js +10 -0
  33. package/esm/vs/base/common/arrays.js.map +1 -1
  34. package/esm/vs/base/common/codiconsLibrary.js +2 -0
  35. package/esm/vs/base/common/codiconsLibrary.js.map +1 -1
  36. package/esm/vs/base/common/network.js +5 -1
  37. package/esm/vs/base/common/network.js.map +1 -1
  38. package/esm/vs/base/common/paging.js.map +1 -1
  39. package/esm/vs/base/common/validation.js +157 -0
  40. package/esm/vs/base/common/validation.js.map +1 -0
  41. package/esm/vs/editor/common/languages.js +10 -0
  42. package/esm/vs/editor/common/languages.js.map +1 -1
  43. package/esm/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeBase.js.map +1 -1
  44. package/esm/vs/editor/common/model/tokens/treeSitter/treeSitterSyntaxTokenBackend.js +1 -1
  45. package/esm/vs/editor/common/model/tokens/treeSitter/treeSitterSyntaxTokenBackend.js.map +1 -1
  46. package/esm/vs/editor/common/services/treeSitter/treeSitterLibraryService.js.map +1 -1
  47. package/esm/vs/editor/common/viewModel/viewModelLines.js.map +1 -1
  48. package/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js +2 -2
  49. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js +64 -20
  50. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js.map +1 -1
  51. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js +12 -12
  52. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js +1 -1
  53. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +1 -1
  54. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js +5 -5
  55. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js +11 -12
  56. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js.map +1 -1
  57. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineSuggestionItem.js +4 -4
  58. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineSuggestionItem.js.map +1 -1
  59. package/esm/vs/editor/contrib/inlineCompletions/browser/model/suggestWidgetAdapter.js.map +1 -1
  60. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js +6 -6
  61. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditWithChanges.js +3 -0
  62. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditWithChanges.js.map +1 -1
  63. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js +1 -1
  64. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js +5 -5
  65. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js.map +1 -1
  66. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js +20 -20
  67. package/esm/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js +1 -1
  68. package/esm/vs/editor/contrib/lineSelection/browser/lineSelection.js +1 -1
  69. package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js +31 -31
  70. package/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +2 -2
  71. package/esm/vs/editor/contrib/links/browser/links.js +10 -10
  72. package/esm/vs/editor/contrib/message/browser/messageController.js +1 -1
  73. package/esm/vs/editor/contrib/multicursor/browser/multicursor.js +22 -22
  74. package/esm/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
  75. package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +4 -4
  76. package/esm/vs/editor/contrib/peekView/browser/peekView.js +18 -18
  77. package/esm/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +1 -1
  78. package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +8 -8
  79. package/esm/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +32 -32
  80. package/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +2 -2
  81. package/esm/vs/editor/contrib/rename/browser/rename.js +11 -11
  82. package/esm/vs/editor/contrib/rename/browser/renameWidget.js +7 -7
  83. package/esm/vs/editor/contrib/smartSelect/browser/smartSelect.js +4 -4
  84. package/esm/vs/editor/contrib/snippet/browser/snippetController2.js +4 -4
  85. package/esm/vs/editor/contrib/snippet/browser/snippetVariables.js +4 -4
  86. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +11 -11
  87. package/esm/vs/editor/contrib/suggest/browser/suggest.js +8 -8
  88. package/esm/vs/editor/contrib/suggest/browser/suggestController.js +10 -10
  89. package/esm/vs/editor/contrib/suggest/browser/suggestWidget.js +17 -17
  90. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +2 -2
  91. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +2 -2
  92. package/esm/vs/editor/contrib/suggest/browser/wordContextKey.js +1 -1
  93. package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +33 -33
  94. package/esm/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +4 -4
  95. package/esm/vs/editor/contrib/tokenization/browser/tokenization.js +1 -1
  96. package/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
  97. package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +24 -24
  98. package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +5 -5
  99. package/esm/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
  100. package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +3 -3
  101. package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js +1 -1
  102. package/esm/vs/editor/standalone/browser/standaloneTreeSitterLibraryService.js +2 -12
  103. package/esm/vs/editor/standalone/browser/standaloneTreeSitterLibraryService.js.map +1 -1
  104. package/esm/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +62 -62
  105. package/esm/vs/platform/action/common/actionCommonCategories.js +6 -6
  106. package/esm/vs/platform/actionWidget/browser/actionList.js +4 -4
  107. package/esm/vs/platform/actionWidget/browser/actionWidget.js +7 -7
  108. package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js +5 -5
  109. package/esm/vs/platform/actions/browser/toolbar.js +2 -2
  110. package/esm/vs/platform/actions/common/actions.js +1 -0
  111. package/esm/vs/platform/actions/common/actions.js.map +1 -1
  112. package/esm/vs/platform/actions/common/menuService.js +2 -2
  113. package/esm/vs/platform/configuration/common/configurationRegistry.js +22 -10
  114. package/esm/vs/platform/configuration/common/configurationRegistry.js.map +1 -1
  115. package/esm/vs/platform/contextkey/browser/contextKeyService.js +1 -1
  116. package/esm/vs/platform/contextkey/common/contextkey.js +9 -9
  117. package/esm/vs/platform/contextkey/common/contextkeys.js +9 -9
  118. package/esm/vs/platform/contextkey/common/scanner.js +5 -5
  119. package/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +1 -1
  120. package/esm/vs/platform/keybinding/common/abstractKeybindingService.js +4 -4
  121. package/esm/vs/platform/list/browser/listService.js +27 -27
  122. package/esm/vs/platform/markers/common/markerService.js +2 -2
  123. package/esm/vs/platform/markers/common/markers.js +6 -6
  124. package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +19 -9
  125. package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js.map +1 -1
  126. package/esm/vs/platform/quickinput/browser/helpQuickAccess.js +1 -1
  127. package/esm/vs/platform/quickinput/browser/quickInput.js +12 -10
  128. package/esm/vs/platform/quickinput/browser/quickInput.js.map +1 -1
  129. package/esm/vs/platform/quickinput/browser/quickInputActions.js +5 -5
  130. package/esm/vs/platform/quickinput/browser/quickInputController.js +12 -6
  131. package/esm/vs/platform/quickinput/browser/quickInputController.js.map +1 -1
  132. package/esm/vs/platform/quickinput/browser/quickInputList.js +1 -1
  133. package/esm/vs/platform/quickinput/browser/quickInputUtils.js +1 -1
  134. package/esm/vs/platform/quickinput/browser/tree/quickInputTree.js +9 -9
  135. package/esm/vs/platform/quickinput/browser/tree/quickInputTree.js.map +1 -1
  136. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js +2 -2
  137. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js.map +1 -1
  138. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeController.js +19 -26
  139. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeController.js.map +1 -1
  140. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeSorter.js +46 -0
  141. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeSorter.js.map +1 -0
  142. package/esm/vs/platform/quickinput/common/quickInput.js.map +1 -1
  143. package/esm/vs/platform/theme/common/colorUtils.js +2 -2
  144. package/esm/vs/platform/theme/common/colors/baseColors.js +17 -17
  145. package/esm/vs/platform/theme/common/colors/chartsColors.js +8 -8
  146. package/esm/vs/platform/theme/common/colors/editorColors.js +95 -95
  147. package/esm/vs/platform/theme/common/colors/inputColors.js +47 -47
  148. package/esm/vs/platform/theme/common/colors/listColors.js +36 -36
  149. package/esm/vs/platform/theme/common/colors/menuColors.js +7 -7
  150. package/esm/vs/platform/theme/common/colors/minimapColors.js +11 -11
  151. package/esm/vs/platform/theme/common/colors/miscColors.js +15 -15
  152. package/esm/vs/platform/theme/common/colors/quickpickColors.js +9 -9
  153. package/esm/vs/platform/theme/common/colors/searchColors.js +3 -3
  154. package/esm/vs/platform/theme/common/iconRegistry.js +6 -6
  155. package/esm/vs/platform/undoRedo/common/undoRedoService.js +20 -20
  156. package/esm/vs/platform/workspace/common/workspace.js +1 -1
  157. package/package.json +2 -2
@@ -40,7 +40,7 @@ let TreeSitterSyntaxTokenBackend = class TreeSitterSyntaxTokenBackend extends Ab
40
40
  return undefined;
41
41
  }
42
42
  const currentLanguage = this._languageIdObs.read(reader);
43
- const treeSitterLang = this._treeSitterLibraryService.getLanguage(currentLanguage, reader);
43
+ const treeSitterLang = this._treeSitterLibraryService.getLanguage(currentLanguage, false, reader);
44
44
  if (!treeSitterLang) {
45
45
  return undefined;
46
46
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/common/model/tokens/treeSitter/treeSitterSyntaxTokenBackend.ts","vs/editor/common/model/tokens/treeSitter/treeSitterSyntaxTokenBackend.ts"],"names":[],"mappings":"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","file":"treeSitterSyntaxTokenBackend.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { Emitter, Event } from '../../../../../base/common/event.js';\nimport { toDisposable } from '../../../../../base/common/lifecycle.js';\nimport { StandardTokenType } from '../../../encodedTokenAttributes.js';\nimport { ILanguageIdCodec } from '../../../languages.js';\nimport { IModelContentChangedEvent } from '../../../textModelEvents.js';\nimport { BackgroundTokenizationState } from '../../../tokenizationTextModelPart.js';\nimport { LineTokens } from '../../../tokens/lineTokens.js';\nimport { TextModel } from '../../textModel.js';\nimport { AbstractSyntaxTokenBackend } from '../abstractSyntaxTokenBackend.js';\nimport { autorun, derived, IObservable, ObservablePromise } from '../../../../../base/common/observable.js';\nimport { TreeSitterTree } from './treeSitterTree.js';\nimport { IInstantiationService } from '../../../../../platform/instantiation/common/instantiation.js';\nimport { TreeSitterTokenizationImpl } from './treeSitterTokenizationImpl.js';\nimport { ITreeSitterLibraryService } from '../../../services/treeSitter/treeSitterLibraryService.js';\nimport { LineRange } from '../../../core/ranges/lineRange.js';\n\nexport class TreeSitterSyntaxTokenBackend extends AbstractSyntaxTokenBackend {\n\tprotected _backgroundTokenizationState: BackgroundTokenizationState = BackgroundTokenizationState.InProgress;\n\tprotected readonly _onDidChangeBackgroundTokenizationState: Emitter<void> = this._register(new Emitter<void>());\n\tpublic readonly onDidChangeBackgroundTokenizationState: Event<void> = this._onDidChangeBackgroundTokenizationState.event;\n\n\tprivate readonly _tree: IObservable<TreeSitterTree | undefined>;\n\tprivate readonly _tokenizationImpl: IObservable<TreeSitterTokenizationImpl | undefined>;\n\n\tconstructor(\n\t\tprivate readonly _languageIdObs: IObservable<string>,\n\t\tlanguageIdCodec: ILanguageIdCodec,\n\t\ttextModel: TextModel,\n\t\tvisibleLineRanges: IObservable<readonly LineRange[]>,\n\t\t@ITreeSitterLibraryService private readonly _treeSitterLibraryService: ITreeSitterLibraryService,\n\t\t@IInstantiationService private readonly _instantiationService: IInstantiationService\n\t) {\n\t\tsuper(languageIdCodec, textModel);\n\n\n\t\tconst parserClassPromise = new ObservablePromise(this._treeSitterLibraryService.getParserClass());\n\n\n\t\tconst parserClassObs = derived(this, reader => {\n\t\t\tconst parser = parserClassPromise.promiseResult?.read(reader)?.getDataOrThrow();\n\t\t\treturn parser;\n\t\t});\n\n\n\t\tthis._tree = derived(this, reader => {\n\t\t\tconst parserClass = parserClassObs.read(reader);\n\t\t\tif (!parserClass) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst currentLanguage = this._languageIdObs.read(reader);\n\t\t\tconst treeSitterLang = this._treeSitterLibraryService.getLanguage(currentLanguage, reader);\n\t\t\tif (!treeSitterLang) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst parser = new parserClass();\n\t\t\treader.store.add(toDisposable(() => {\n\t\t\t\tparser.delete();\n\t\t\t}));\n\t\t\tparser.setLanguage(treeSitterLang);\n\n\t\t\tconst queries = this._treeSitterLibraryService.getInjectionQueries(currentLanguage, reader);\n\t\t\tif (queries === undefined) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\treturn reader.store.add(this._instantiationService.createInstance(TreeSitterTree, currentLanguage, undefined, parser, parserClass, /*queries, */this._textModel));\n\t\t});\n\n\n\t\tthis._tokenizationImpl = derived(this, reader => {\n\t\t\tconst treeModel = this._tree.read(reader);\n\t\t\tif (!treeModel) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst queries = this._treeSitterLibraryService.getHighlightingQueries(treeModel.languageId, reader);\n\t\t\tif (!queries) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\treturn reader.store.add(this._instantiationService.createInstance(TreeSitterTokenizationImpl, treeModel, queries, this._languageIdCodec, visibleLineRanges));\n\t\t});\n\n\t\tthis._register(autorun(reader => {\n\t\t\tconst tokModel = this._tokenizationImpl.read(reader);\n\t\t\tif (!tokModel) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treader.store.add(tokModel.onDidChangeTokens((e) => {\n\t\t\t\tthis._onDidChangeTokens.fire(e.changes);\n\t\t\t}));\n\t\t\treader.store.add(tokModel.onDidChangeBackgroundTokenization(e => {\n\t\t\t\tthis._backgroundTokenizationState = BackgroundTokenizationState.Completed;\n\t\t\t\tthis._onDidChangeBackgroundTokenizationState.fire();\n\t\t\t}));\n\t\t}));\n\t}\n\n\tpublic getLineTokens(lineNumber: number): LineTokens {\n\t\tconst model = this._tokenizationImpl.get();\n\t\tif (!model) {\n\t\t\tconst content = this._textModel.getLineContent(lineNumber);\n\t\t\treturn LineTokens.createEmpty(content, this._languageIdCodec);\n\t\t}\n\t\treturn model.getLineTokens(lineNumber);\n\t}\n\n\tpublic todo_resetTokenization(fireTokenChangeEvent: boolean = true): void {\n\t\tif (fireTokenChangeEvent) {\n\t\t\tthis._onDidChangeTokens.fire({\n\t\t\t\tsemanticTokensApplied: false,\n\t\t\t\tranges: [\n\t\t\t\t\t{\n\t\t\t\t\t\tfromLineNumber: 1,\n\t\t\t\t\t\ttoLineNumber: this._textModel.getLineCount(),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t}\n\t}\n\n\tpublic override handleDidChangeAttached(): void {\n\t\t// TODO @alexr00 implement for background tokenization\n\t}\n\n\tpublic override handleDidChangeContent(e: IModelContentChangedEvent): void {\n\t\tif (e.isFlush) {\n\t\t\t// Don't fire the event, as the view might not have got the text change event yet\n\t\t\tthis.todo_resetTokenization(false);\n\t\t} else {\n\t\t\tconst model = this._tokenizationImpl.get();\n\t\t\tmodel?.handleContentChanged(e);\n\t\t}\n\n\t\tconst treeModel = this._tree.get();\n\t\ttreeModel?.handleContentChange(e);\n\t}\n\n\tpublic override forceTokenization(lineNumber: number): void {\n\t\tconst model = this._tokenizationImpl.get();\n\t\tif (!model) {\n\t\t\treturn;\n\t\t}\n\t\tif (!model.hasAccurateTokensForLine(lineNumber)) {\n\t\t\tmodel.tokenizeEncoded(lineNumber);\n\t\t}\n\t}\n\n\tpublic override hasAccurateTokensForLine(lineNumber: number): boolean {\n\t\tconst model = this._tokenizationImpl.get();\n\t\tif (!model) {\n\t\t\treturn false;\n\t\t}\n\t\treturn model.hasAccurateTokensForLine(lineNumber);\n\t}\n\n\tpublic override isCheapToTokenize(lineNumber: number): boolean {\n\t\t// TODO @alexr00 determine what makes it cheap to tokenize?\n\t\treturn true;\n\t}\n\n\tpublic override getTokenTypeIfInsertingCharacter(lineNumber: number, column: number, character: string): StandardTokenType {\n\t\t// TODO @alexr00 implement once we have custom parsing and don't just feed in the whole text model value\n\t\treturn StandardTokenType.Other;\n\t}\n\n\tpublic override tokenizeLinesAt(lineNumber: number, lines: string[]): LineTokens[] | null {\n\t\tconst model = this._tokenizationImpl.get();\n\t\tif (!model) {\n\t\t\treturn null;\n\t\t}\n\t\treturn model.tokenizeLinesAt(lineNumber, lines);\n\t}\n\n\tpublic override get hasTokens(): boolean {\n\t\tconst model = this._tokenizationImpl.get();\n\t\tif (!model) {\n\t\t\treturn false;\n\t\t}\n\t\treturn model.hasTokens();\n\t}\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { Emitter, Event } from '../../../../../base/common/event.js';\nimport { toDisposable } from '../../../../../base/common/lifecycle.js';\nimport { StandardTokenType } from '../../../encodedTokenAttributes.js';\nimport { ILanguageIdCodec } from '../../../languages.js';\nimport { IModelContentChangedEvent } from '../../../textModelEvents.js';\nimport { BackgroundTokenizationState } from '../../../tokenizationTextModelPart.js';\nimport { LineTokens } from '../../../tokens/lineTokens.js';\nimport { TextModel } from '../../textModel.js';\nimport { AbstractSyntaxTokenBackend } from '../abstractSyntaxTokenBackend.js';\nimport { autorun, derived, IObservable, ObservablePromise } from '../../../../../base/common/observable.js';\nimport { TreeSitterTree } from './treeSitterTree.js';\nimport { IInstantiationService } from '../../../../../platform/instantiation/common/instantiation.js';\nimport { TreeSitterTokenizationImpl } from './treeSitterTokenizationImpl.js';\nimport { ITreeSitterLibraryService } from '../../../services/treeSitter/treeSitterLibraryService.js';\nimport { LineRange } from '../../../core/ranges/lineRange.js';\n\nexport class TreeSitterSyntaxTokenBackend extends AbstractSyntaxTokenBackend {\n\tprotected _backgroundTokenizationState: BackgroundTokenizationState = BackgroundTokenizationState.InProgress;\n\tprotected readonly _onDidChangeBackgroundTokenizationState: Emitter<void> = this._register(new Emitter<void>());\n\tpublic readonly onDidChangeBackgroundTokenizationState: Event<void> = this._onDidChangeBackgroundTokenizationState.event;\n\n\tprivate readonly _tree: IObservable<TreeSitterTree | undefined>;\n\tprivate readonly _tokenizationImpl: IObservable<TreeSitterTokenizationImpl | undefined>;\n\n\tconstructor(\n\t\tprivate readonly _languageIdObs: IObservable<string>,\n\t\tlanguageIdCodec: ILanguageIdCodec,\n\t\ttextModel: TextModel,\n\t\tvisibleLineRanges: IObservable<readonly LineRange[]>,\n\t\t@ITreeSitterLibraryService private readonly _treeSitterLibraryService: ITreeSitterLibraryService,\n\t\t@IInstantiationService private readonly _instantiationService: IInstantiationService\n\t) {\n\t\tsuper(languageIdCodec, textModel);\n\n\n\t\tconst parserClassPromise = new ObservablePromise(this._treeSitterLibraryService.getParserClass());\n\n\n\t\tconst parserClassObs = derived(this, reader => {\n\t\t\tconst parser = parserClassPromise.promiseResult?.read(reader)?.getDataOrThrow();\n\t\t\treturn parser;\n\t\t});\n\n\n\t\tthis._tree = derived(this, reader => {\n\t\t\tconst parserClass = parserClassObs.read(reader);\n\t\t\tif (!parserClass) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst currentLanguage = this._languageIdObs.read(reader);\n\t\t\tconst treeSitterLang = this._treeSitterLibraryService.getLanguage(currentLanguage, reader);\n\t\t\tif (!treeSitterLang) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst parser = new parserClass();\n\t\t\treader.store.add(toDisposable(() => {\n\t\t\t\tparser.delete();\n\t\t\t}));\n\t\t\tparser.setLanguage(treeSitterLang);\n\n\t\t\tconst queries = this._treeSitterLibraryService.getInjectionQueries(currentLanguage, reader);\n\t\t\tif (queries === undefined) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\treturn reader.store.add(this._instantiationService.createInstance(TreeSitterTree, currentLanguage, undefined, parser, parserClass, /*queries, */this._textModel));\n\t\t});\n\n\n\t\tthis._tokenizationImpl = derived(this, reader => {\n\t\t\tconst treeModel = this._tree.read(reader);\n\t\t\tif (!treeModel) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst queries = this._treeSitterLibraryService.getHighlightingQueries(treeModel.languageId, reader);\n\t\t\tif (!queries) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\treturn reader.store.add(this._instantiationService.createInstance(TreeSitterTokenizationImpl, treeModel, queries, this._languageIdCodec, visibleLineRanges));\n\t\t});\n\n\t\tthis._register(autorun(reader => {\n\t\t\tconst tokModel = this._tokenizationImpl.read(reader);\n\t\t\tif (!tokModel) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treader.store.add(tokModel.onDidChangeTokens((e) => {\n\t\t\t\tthis._onDidChangeTokens.fire(e.changes);\n\t\t\t}));\n\t\t\treader.store.add(tokModel.onDidChangeBackgroundTokenization(e => {\n\t\t\t\tthis._backgroundTokenizationState = BackgroundTokenizationState.Completed;\n\t\t\t\tthis._onDidChangeBackgroundTokenizationState.fire();\n\t\t\t}));\n\t\t}));\n\t}\n\n\tpublic getLineTokens(lineNumber: number): LineTokens {\n\t\tconst model = this._tokenizationImpl.get();\n\t\tif (!model) {\n\t\t\tconst content = this._textModel.getLineContent(lineNumber);\n\t\t\treturn LineTokens.createEmpty(content, this._languageIdCodec);\n\t\t}\n\t\treturn model.getLineTokens(lineNumber);\n\t}\n\n\tpublic todo_resetTokenization(fireTokenChangeEvent: boolean = true): void {\n\t\tif (fireTokenChangeEvent) {\n\t\t\tthis._onDidChangeTokens.fire({\n\t\t\t\tsemanticTokensApplied: false,\n\t\t\t\tranges: [\n\t\t\t\t\t{\n\t\t\t\t\t\tfromLineNumber: 1,\n\t\t\t\t\t\ttoLineNumber: this._textModel.getLineCount(),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t}\n\t}\n\n\tpublic override handleDidChangeAttached(): void {\n\t\t// TODO @alexr00 implement for background tokenization\n\t}\n\n\tpublic override handleDidChangeContent(e: IModelContentChangedEvent): void {\n\t\tif (e.isFlush) {\n\t\t\t// Don't fire the event, as the view might not have got the text change event yet\n\t\t\tthis.todo_resetTokenization(false);\n\t\t} else {\n\t\t\tconst model = this._tokenizationImpl.get();\n\t\t\tmodel?.handleContentChanged(e);\n\t\t}\n\n\t\tconst treeModel = this._tree.get();\n\t\ttreeModel?.handleContentChange(e);\n\t}\n\n\tpublic override forceTokenization(lineNumber: number): void {\n\t\tconst model = this._tokenizationImpl.get();\n\t\tif (!model) {\n\t\t\treturn;\n\t\t}\n\t\tif (!model.hasAccurateTokensForLine(lineNumber)) {\n\t\t\tmodel.tokenizeEncoded(lineNumber);\n\t\t}\n\t}\n\n\tpublic override hasAccurateTokensForLine(lineNumber: number): boolean {\n\t\tconst model = this._tokenizationImpl.get();\n\t\tif (!model) {\n\t\t\treturn false;\n\t\t}\n\t\treturn model.hasAccurateTokensForLine(lineNumber);\n\t}\n\n\tpublic override isCheapToTokenize(lineNumber: number): boolean {\n\t\t// TODO @alexr00 determine what makes it cheap to tokenize?\n\t\treturn true;\n\t}\n\n\tpublic override getTokenTypeIfInsertingCharacter(lineNumber: number, column: number, character: string): StandardTokenType {\n\t\t// TODO @alexr00 implement once we have custom parsing and don't just feed in the whole text model value\n\t\treturn StandardTokenType.Other;\n\t}\n\n\tpublic override tokenizeLinesAt(lineNumber: number, lines: string[]): LineTokens[] | null {\n\t\tconst model = this._tokenizationImpl.get();\n\t\tif (!model) {\n\t\t\treturn null;\n\t\t}\n\t\treturn model.tokenizeLinesAt(lineNumber, lines);\n\t}\n\n\tpublic override get hasTokens(): boolean {\n\t\tconst model = this._tokenizationImpl.get();\n\t\tif (!model) {\n\t\t\treturn false;\n\t\t}\n\t\treturn model.hasTokens();\n\t}\n}\n"]}
1
+ {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/common/model/tokens/treeSitter/treeSitterSyntaxTokenBackend.ts","vs/editor/common/model/tokens/treeSitter/treeSitterSyntaxTokenBackend.ts"],"names":[],"mappings":"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","file":"treeSitterSyntaxTokenBackend.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { Emitter, Event } from '../../../../../base/common/event.js';\nimport { toDisposable } from '../../../../../base/common/lifecycle.js';\nimport { StandardTokenType } from '../../../encodedTokenAttributes.js';\nimport { ILanguageIdCodec } from '../../../languages.js';\nimport { IModelContentChangedEvent } from '../../../textModelEvents.js';\nimport { BackgroundTokenizationState } from '../../../tokenizationTextModelPart.js';\nimport { LineTokens } from '../../../tokens/lineTokens.js';\nimport { TextModel } from '../../textModel.js';\nimport { AbstractSyntaxTokenBackend } from '../abstractSyntaxTokenBackend.js';\nimport { autorun, derived, IObservable, ObservablePromise } from '../../../../../base/common/observable.js';\nimport { TreeSitterTree } from './treeSitterTree.js';\nimport { IInstantiationService } from '../../../../../platform/instantiation/common/instantiation.js';\nimport { TreeSitterTokenizationImpl } from './treeSitterTokenizationImpl.js';\nimport { ITreeSitterLibraryService } from '../../../services/treeSitter/treeSitterLibraryService.js';\nimport { LineRange } from '../../../core/ranges/lineRange.js';\n\nexport class TreeSitterSyntaxTokenBackend extends AbstractSyntaxTokenBackend {\n\tprotected _backgroundTokenizationState: BackgroundTokenizationState = BackgroundTokenizationState.InProgress;\n\tprotected readonly _onDidChangeBackgroundTokenizationState: Emitter<void> = this._register(new Emitter<void>());\n\tpublic readonly onDidChangeBackgroundTokenizationState: Event<void> = this._onDidChangeBackgroundTokenizationState.event;\n\n\tprivate readonly _tree: IObservable<TreeSitterTree | undefined>;\n\tprivate readonly _tokenizationImpl: IObservable<TreeSitterTokenizationImpl | undefined>;\n\n\tconstructor(\n\t\tprivate readonly _languageIdObs: IObservable<string>,\n\t\tlanguageIdCodec: ILanguageIdCodec,\n\t\ttextModel: TextModel,\n\t\tvisibleLineRanges: IObservable<readonly LineRange[]>,\n\t\t@ITreeSitterLibraryService private readonly _treeSitterLibraryService: ITreeSitterLibraryService,\n\t\t@IInstantiationService private readonly _instantiationService: IInstantiationService\n\t) {\n\t\tsuper(languageIdCodec, textModel);\n\n\n\t\tconst parserClassPromise = new ObservablePromise(this._treeSitterLibraryService.getParserClass());\n\n\n\t\tconst parserClassObs = derived(this, reader => {\n\t\t\tconst parser = parserClassPromise.promiseResult?.read(reader)?.getDataOrThrow();\n\t\t\treturn parser;\n\t\t});\n\n\n\t\tthis._tree = derived(this, reader => {\n\t\t\tconst parserClass = parserClassObs.read(reader);\n\t\t\tif (!parserClass) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst currentLanguage = this._languageIdObs.read(reader);\n\t\t\tconst treeSitterLang = this._treeSitterLibraryService.getLanguage(currentLanguage, false, reader);\n\t\t\tif (!treeSitterLang) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst parser = new parserClass();\n\t\t\treader.store.add(toDisposable(() => {\n\t\t\t\tparser.delete();\n\t\t\t}));\n\t\t\tparser.setLanguage(treeSitterLang);\n\n\t\t\tconst queries = this._treeSitterLibraryService.getInjectionQueries(currentLanguage, reader);\n\t\t\tif (queries === undefined) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\treturn reader.store.add(this._instantiationService.createInstance(TreeSitterTree, currentLanguage, undefined, parser, parserClass, /*queries, */this._textModel));\n\t\t});\n\n\n\t\tthis._tokenizationImpl = derived(this, reader => {\n\t\t\tconst treeModel = this._tree.read(reader);\n\t\t\tif (!treeModel) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst queries = this._treeSitterLibraryService.getHighlightingQueries(treeModel.languageId, reader);\n\t\t\tif (!queries) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\treturn reader.store.add(this._instantiationService.createInstance(TreeSitterTokenizationImpl, treeModel, queries, this._languageIdCodec, visibleLineRanges));\n\t\t});\n\n\t\tthis._register(autorun(reader => {\n\t\t\tconst tokModel = this._tokenizationImpl.read(reader);\n\t\t\tif (!tokModel) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treader.store.add(tokModel.onDidChangeTokens((e) => {\n\t\t\t\tthis._onDidChangeTokens.fire(e.changes);\n\t\t\t}));\n\t\t\treader.store.add(tokModel.onDidChangeBackgroundTokenization(e => {\n\t\t\t\tthis._backgroundTokenizationState = BackgroundTokenizationState.Completed;\n\t\t\t\tthis._onDidChangeBackgroundTokenizationState.fire();\n\t\t\t}));\n\t\t}));\n\t}\n\n\tpublic getLineTokens(lineNumber: number): LineTokens {\n\t\tconst model = this._tokenizationImpl.get();\n\t\tif (!model) {\n\t\t\tconst content = this._textModel.getLineContent(lineNumber);\n\t\t\treturn LineTokens.createEmpty(content, this._languageIdCodec);\n\t\t}\n\t\treturn model.getLineTokens(lineNumber);\n\t}\n\n\tpublic todo_resetTokenization(fireTokenChangeEvent: boolean = true): void {\n\t\tif (fireTokenChangeEvent) {\n\t\t\tthis._onDidChangeTokens.fire({\n\t\t\t\tsemanticTokensApplied: false,\n\t\t\t\tranges: [\n\t\t\t\t\t{\n\t\t\t\t\t\tfromLineNumber: 1,\n\t\t\t\t\t\ttoLineNumber: this._textModel.getLineCount(),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t}\n\t}\n\n\tpublic override handleDidChangeAttached(): void {\n\t\t// TODO @alexr00 implement for background tokenization\n\t}\n\n\tpublic override handleDidChangeContent(e: IModelContentChangedEvent): void {\n\t\tif (e.isFlush) {\n\t\t\t// Don't fire the event, as the view might not have got the text change event yet\n\t\t\tthis.todo_resetTokenization(false);\n\t\t} else {\n\t\t\tconst model = this._tokenizationImpl.get();\n\t\t\tmodel?.handleContentChanged(e);\n\t\t}\n\n\t\tconst treeModel = this._tree.get();\n\t\ttreeModel?.handleContentChange(e);\n\t}\n\n\tpublic override forceTokenization(lineNumber: number): void {\n\t\tconst model = this._tokenizationImpl.get();\n\t\tif (!model) {\n\t\t\treturn;\n\t\t}\n\t\tif (!model.hasAccurateTokensForLine(lineNumber)) {\n\t\t\tmodel.tokenizeEncoded(lineNumber);\n\t\t}\n\t}\n\n\tpublic override hasAccurateTokensForLine(lineNumber: number): boolean {\n\t\tconst model = this._tokenizationImpl.get();\n\t\tif (!model) {\n\t\t\treturn false;\n\t\t}\n\t\treturn model.hasAccurateTokensForLine(lineNumber);\n\t}\n\n\tpublic override isCheapToTokenize(lineNumber: number): boolean {\n\t\t// TODO @alexr00 determine what makes it cheap to tokenize?\n\t\treturn true;\n\t}\n\n\tpublic override getTokenTypeIfInsertingCharacter(lineNumber: number, column: number, character: string): StandardTokenType {\n\t\t// TODO @alexr00 implement once we have custom parsing and don't just feed in the whole text model value\n\t\treturn StandardTokenType.Other;\n\t}\n\n\tpublic override tokenizeLinesAt(lineNumber: number, lines: string[]): LineTokens[] | null {\n\t\tconst model = this._tokenizationImpl.get();\n\t\tif (!model) {\n\t\t\treturn null;\n\t\t}\n\t\treturn model.tokenizeLinesAt(lineNumber, lines);\n\t}\n\n\tpublic override get hasTokens(): boolean {\n\t\tconst model = this._tokenizationImpl.get();\n\t\tif (!model) {\n\t\t\treturn false;\n\t\t}\n\t\treturn model.hasTokens();\n\t}\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { Emitter, Event } from '../../../../../base/common/event.js';\nimport { toDisposable } from '../../../../../base/common/lifecycle.js';\nimport { StandardTokenType } from '../../../encodedTokenAttributes.js';\nimport { ILanguageIdCodec } from '../../../languages.js';\nimport { IModelContentChangedEvent } from '../../../textModelEvents.js';\nimport { BackgroundTokenizationState } from '../../../tokenizationTextModelPart.js';\nimport { LineTokens } from '../../../tokens/lineTokens.js';\nimport { TextModel } from '../../textModel.js';\nimport { AbstractSyntaxTokenBackend } from '../abstractSyntaxTokenBackend.js';\nimport { autorun, derived, IObservable, ObservablePromise } from '../../../../../base/common/observable.js';\nimport { TreeSitterTree } from './treeSitterTree.js';\nimport { IInstantiationService } from '../../../../../platform/instantiation/common/instantiation.js';\nimport { TreeSitterTokenizationImpl } from './treeSitterTokenizationImpl.js';\nimport { ITreeSitterLibraryService } from '../../../services/treeSitter/treeSitterLibraryService.js';\nimport { LineRange } from '../../../core/ranges/lineRange.js';\n\nexport class TreeSitterSyntaxTokenBackend extends AbstractSyntaxTokenBackend {\n\tprotected _backgroundTokenizationState: BackgroundTokenizationState = BackgroundTokenizationState.InProgress;\n\tprotected readonly _onDidChangeBackgroundTokenizationState: Emitter<void> = this._register(new Emitter<void>());\n\tpublic readonly onDidChangeBackgroundTokenizationState: Event<void> = this._onDidChangeBackgroundTokenizationState.event;\n\n\tprivate readonly _tree: IObservable<TreeSitterTree | undefined>;\n\tprivate readonly _tokenizationImpl: IObservable<TreeSitterTokenizationImpl | undefined>;\n\n\tconstructor(\n\t\tprivate readonly _languageIdObs: IObservable<string>,\n\t\tlanguageIdCodec: ILanguageIdCodec,\n\t\ttextModel: TextModel,\n\t\tvisibleLineRanges: IObservable<readonly LineRange[]>,\n\t\t@ITreeSitterLibraryService private readonly _treeSitterLibraryService: ITreeSitterLibraryService,\n\t\t@IInstantiationService private readonly _instantiationService: IInstantiationService\n\t) {\n\t\tsuper(languageIdCodec, textModel);\n\n\n\t\tconst parserClassPromise = new ObservablePromise(this._treeSitterLibraryService.getParserClass());\n\n\n\t\tconst parserClassObs = derived(this, reader => {\n\t\t\tconst parser = parserClassPromise.promiseResult?.read(reader)?.getDataOrThrow();\n\t\t\treturn parser;\n\t\t});\n\n\n\t\tthis._tree = derived(this, reader => {\n\t\t\tconst parserClass = parserClassObs.read(reader);\n\t\t\tif (!parserClass) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst currentLanguage = this._languageIdObs.read(reader);\n\t\t\tconst treeSitterLang = this._treeSitterLibraryService.getLanguage(currentLanguage, false, reader);\n\t\t\tif (!treeSitterLang) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst parser = new parserClass();\n\t\t\treader.store.add(toDisposable(() => {\n\t\t\t\tparser.delete();\n\t\t\t}));\n\t\t\tparser.setLanguage(treeSitterLang);\n\n\t\t\tconst queries = this._treeSitterLibraryService.getInjectionQueries(currentLanguage, reader);\n\t\t\tif (queries === undefined) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\treturn reader.store.add(this._instantiationService.createInstance(TreeSitterTree, currentLanguage, undefined, parser, parserClass, /*queries, */this._textModel));\n\t\t});\n\n\n\t\tthis._tokenizationImpl = derived(this, reader => {\n\t\t\tconst treeModel = this._tree.read(reader);\n\t\t\tif (!treeModel) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst queries = this._treeSitterLibraryService.getHighlightingQueries(treeModel.languageId, reader);\n\t\t\tif (!queries) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\treturn reader.store.add(this._instantiationService.createInstance(TreeSitterTokenizationImpl, treeModel, queries, this._languageIdCodec, visibleLineRanges));\n\t\t});\n\n\t\tthis._register(autorun(reader => {\n\t\t\tconst tokModel = this._tokenizationImpl.read(reader);\n\t\t\tif (!tokModel) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treader.store.add(tokModel.onDidChangeTokens((e) => {\n\t\t\t\tthis._onDidChangeTokens.fire(e.changes);\n\t\t\t}));\n\t\t\treader.store.add(tokModel.onDidChangeBackgroundTokenization(e => {\n\t\t\t\tthis._backgroundTokenizationState = BackgroundTokenizationState.Completed;\n\t\t\t\tthis._onDidChangeBackgroundTokenizationState.fire();\n\t\t\t}));\n\t\t}));\n\t}\n\n\tpublic getLineTokens(lineNumber: number): LineTokens {\n\t\tconst model = this._tokenizationImpl.get();\n\t\tif (!model) {\n\t\t\tconst content = this._textModel.getLineContent(lineNumber);\n\t\t\treturn LineTokens.createEmpty(content, this._languageIdCodec);\n\t\t}\n\t\treturn model.getLineTokens(lineNumber);\n\t}\n\n\tpublic todo_resetTokenization(fireTokenChangeEvent: boolean = true): void {\n\t\tif (fireTokenChangeEvent) {\n\t\t\tthis._onDidChangeTokens.fire({\n\t\t\t\tsemanticTokensApplied: false,\n\t\t\t\tranges: [\n\t\t\t\t\t{\n\t\t\t\t\t\tfromLineNumber: 1,\n\t\t\t\t\t\ttoLineNumber: this._textModel.getLineCount(),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t}\n\t}\n\n\tpublic override handleDidChangeAttached(): void {\n\t\t// TODO @alexr00 implement for background tokenization\n\t}\n\n\tpublic override handleDidChangeContent(e: IModelContentChangedEvent): void {\n\t\tif (e.isFlush) {\n\t\t\t// Don't fire the event, as the view might not have got the text change event yet\n\t\t\tthis.todo_resetTokenization(false);\n\t\t} else {\n\t\t\tconst model = this._tokenizationImpl.get();\n\t\t\tmodel?.handleContentChanged(e);\n\t\t}\n\n\t\tconst treeModel = this._tree.get();\n\t\ttreeModel?.handleContentChange(e);\n\t}\n\n\tpublic override forceTokenization(lineNumber: number): void {\n\t\tconst model = this._tokenizationImpl.get();\n\t\tif (!model) {\n\t\t\treturn;\n\t\t}\n\t\tif (!model.hasAccurateTokensForLine(lineNumber)) {\n\t\t\tmodel.tokenizeEncoded(lineNumber);\n\t\t}\n\t}\n\n\tpublic override hasAccurateTokensForLine(lineNumber: number): boolean {\n\t\tconst model = this._tokenizationImpl.get();\n\t\tif (!model) {\n\t\t\treturn false;\n\t\t}\n\t\treturn model.hasAccurateTokensForLine(lineNumber);\n\t}\n\n\tpublic override isCheapToTokenize(lineNumber: number): boolean {\n\t\t// TODO @alexr00 determine what makes it cheap to tokenize?\n\t\treturn true;\n\t}\n\n\tpublic override getTokenTypeIfInsertingCharacter(lineNumber: number, column: number, character: string): StandardTokenType {\n\t\t// TODO @alexr00 implement once we have custom parsing and don't just feed in the whole text model value\n\t\treturn StandardTokenType.Other;\n\t}\n\n\tpublic override tokenizeLinesAt(lineNumber: number, lines: string[]): LineTokens[] | null {\n\t\tconst model = this._tokenizationImpl.get();\n\t\tif (!model) {\n\t\t\treturn null;\n\t\t}\n\t\treturn model.tokenizeLinesAt(lineNumber, lines);\n\t}\n\n\tpublic override get hasTokens(): boolean {\n\t\tconst model = this._tokenizationImpl.get();\n\t\tif (!model) {\n\t\t\treturn false;\n\t\t}\n\t\treturn model.hasTokens();\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/common/services/treeSitter/treeSitterLibraryService.ts","vs/editor/common/services/treeSitter/treeSitterLibraryService.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAGhG,OAAO,EAAE,eAAe,EAAE,MAAM,4DAA4D,CAAC;AAG7F,MAAM,CAAC,MAAM,yBAAyB,GAAG,eAAe,CAA4B,0BAA0B,CAAC,CAAC","file":"treeSitterLibraryService.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { Language, Parser, Query } from '@vscode/tree-sitter-wasm';\nimport { createDecorator } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IReader } from '../../../../base/common/observable.js';\n\nexport const ITreeSitterLibraryService = createDecorator<ITreeSitterLibraryService>('treeSitterLibraryService');\n\nexport interface ITreeSitterLibraryService {\n\treadonly _serviceBrand: undefined;\n\n\tgetParserClass(): Promise<typeof Parser>;\n\n\tsupportsLanguage(languageId: string, reader: IReader | undefined): boolean;\n\tgetLanguage(languageId: string, reader: IReader | undefined): Language | undefined;\n\t/**\n\t * Return value of null indicates that there are no injection queries for this language.\n\t * @param languageId\n\t * @param reader\n\t */\n\tgetInjectionQueries(languageId: string, reader: IReader | undefined): Query | null | undefined;\n\t/**\n\t * Return value of null indicates that there are no highlights queries for this language.\n\t * @param languageId\n\t * @param reader\n\t */\n\tgetHighlightingQueries(languageId: string, reader: IReader | undefined): Query | null | undefined;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { Language, Parser, Query } from '@vscode/tree-sitter-wasm';\nimport { createDecorator } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IReader } from '../../../../base/common/observable.js';\n\nexport const ITreeSitterLibraryService = createDecorator<ITreeSitterLibraryService>('treeSitterLibraryService');\n\nexport interface ITreeSitterLibraryService {\n\treadonly _serviceBrand: undefined;\n\n\tgetParserClass(): Promise<typeof Parser>;\n\n\tsupportsLanguage(languageId: string, reader: IReader | undefined): boolean;\n\tgetLanguage(languageId: string, reader: IReader | undefined): Language | undefined;\n\t/**\n\t * Return value of null indicates that there are no injection queries for this language.\n\t * @param languageId\n\t * @param reader\n\t */\n\tgetInjectionQueries(languageId: string, reader: IReader | undefined): Query | null | undefined;\n\t/**\n\t * Return value of null indicates that there are no highlights queries for this language.\n\t * @param languageId\n\t * @param reader\n\t */\n\tgetHighlightingQueries(languageId: string, reader: IReader | undefined): Query | null | undefined;\n}\n"]}
1
+ {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/common/services/treeSitter/treeSitterLibraryService.ts","vs/editor/common/services/treeSitter/treeSitterLibraryService.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAGhG,OAAO,EAAE,eAAe,EAAE,MAAM,4DAA4D,CAAC;AAG7F,MAAM,CAAC,MAAM,yBAAyB,GAAG,eAAe,CAA4B,0BAA0B,CAAC,CAAC","file":"treeSitterLibraryService.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { Language, Parser, Query } from '@vscode/tree-sitter-wasm';\nimport { createDecorator } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IReader } from '../../../../base/common/observable.js';\n\nexport const ITreeSitterLibraryService = createDecorator<ITreeSitterLibraryService>('treeSitterLibraryService');\n\nexport interface ITreeSitterLibraryService {\n\treadonly _serviceBrand: undefined;\n\n\t/**\n\t * Gets the tree sitter Parser constructor.\n\t */\n\tgetParserClass(): Promise<typeof Parser>;\n\n\t/**\n\t * Checks whether a language is supported and available based setting enablement.\n\t * @param languageId The language identifier to check.\n\t * @param reader Optional observable reader.\n\t */\n\tsupportsLanguage(languageId: string, reader: IReader | undefined): boolean;\n\n\t/**\n\t * Gets the tree sitter Language object synchronously.\n\t * @param languageId The language identifier to retrieve.\n\t * @param ignoreSupportsCheck Whether to ignore the supportsLanguage check.\n\t * @param reader Optional observable reader.\n\t */\n\tgetLanguage(languageId: string, ignoreSupportsCheck: boolean, reader: IReader | undefined): Language | undefined;\n\n\t/**\n\t * Gets the injection queries for a language. A return value of `null`\n\t * indicates that there are no highlights queries for this language.\n\t * @param languageId The language identifier to retrieve queries for.\n\t * @param reader Optional observable reader.\n\t */\n\tgetInjectionQueries(languageId: string, reader: IReader | undefined): Query | null | undefined;\n\n\t/**\n\t * Gets the highlighting queries for a language. A return value of `null`\n\t * indicates that there are no highlights queries for this language.\n\t * @param languageId The language identifier to retrieve queries for.\n\t * @param reader Optional observable reader.\n\t */\n\tgetHighlightingQueries(languageId: string, reader: IReader | undefined): Query | null | undefined;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { Language, Parser, Query } from '@vscode/tree-sitter-wasm';\nimport { createDecorator } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IReader } from '../../../../base/common/observable.js';\n\nexport const ITreeSitterLibraryService = createDecorator<ITreeSitterLibraryService>('treeSitterLibraryService');\n\nexport interface ITreeSitterLibraryService {\n\treadonly _serviceBrand: undefined;\n\n\t/**\n\t * Gets the tree sitter Parser constructor.\n\t */\n\tgetParserClass(): Promise<typeof Parser>;\n\n\t/**\n\t * Checks whether a language is supported and available based setting enablement.\n\t * @param languageId The language identifier to check.\n\t * @param reader Optional observable reader.\n\t */\n\tsupportsLanguage(languageId: string, reader: IReader | undefined): boolean;\n\n\t/**\n\t * Gets the tree sitter Language object synchronously.\n\t * @param languageId The language identifier to retrieve.\n\t * @param ignoreSupportsCheck Whether to ignore the supportsLanguage check.\n\t * @param reader Optional observable reader.\n\t */\n\tgetLanguage(languageId: string, ignoreSupportsCheck: boolean, reader: IReader | undefined): Language | undefined;\n\n\t/**\n\t * Gets the injection queries for a language. A return value of `null`\n\t * indicates that there are no highlights queries for this language.\n\t * @param languageId The language identifier to retrieve queries for.\n\t * @param reader Optional observable reader.\n\t */\n\tgetInjectionQueries(languageId: string, reader: IReader | undefined): Query | null | undefined;\n\n\t/**\n\t * Gets the highlighting queries for a language. A return value of `null`\n\t * indicates that there are no highlights queries for this language.\n\t * @param languageId The language identifier to retrieve queries for.\n\t * @param reader Optional observable reader.\n\t */\n\tgetHighlightingQueries(languageId: string, reader: IReader | undefined): Query | null | undefined;\n}\n"]}