Есть ли способ получить текущую позицию в модели JSON? - PullRequest
0 голосов
/ 08 января 2020

Я пытаюсь создать функциональность автозаполнения, используя пример игровой площадки Монако в качестве основы: https://microsoft.github.io/monaco-editor/playground.html#extending -language-services-complete-provider-example

В примере предложения ограничены с помощью простого регулярного выражения:

// find out if we are completing a property in the 'dependencies' object.
var textUntilPosition = model.getValueInRange({startLineNumber: 1, startColumn: 1, endLineNumber: position.lineNumber, endColumn: position.column});
var match = textUntilPosition.match(/"dependencies"\s*:\s*\{\s*("[^"]*"\s*:\s*"[^"]*"\s*,\s*)*([^"]*)?$/);
if (!match) {
  return { suggestions: [] };
}

Это несовершенно, так как предложения появляются и после объекта зависимостей. И эта проблема обостряется для json файлов с большими JSON определениями схемы.

Есть ли способ уточнить предложения по автозаполнению, учитывая текущую позицию? Либо прямо в Монако, либо во внешней библиотеке (имея в виду, что JSON до сих пор может даже не быть действительным, поскольку он редактируется в настоящее время).

В идеале, я надеюсь на «функцию» который предоставляет полный JSON указатель / ссылку на текущий указатель или что-то подобное.

...