2011-02-20 1 views
1

Я хочу интегрировать функцию завершения кода в XML-редактор на основе CodeMirror. Он в основном анализирует схему XML-файла и обеспечивает завершение кода в соответствии с схемой и ее структурой. Но я ничего не мог сделать. Например, когда курсор перемещается в местоположение, внутри которого находится и тег xml, завершение кода должно вести себя соответствующим образом. Он должен знать, что курсор находится внутри тега и т. Д. Как я могу это сделать?CodeMirror завершение кода, анализирующее местоположение курсора

Я думаю, что синтаксический анализатор кода кода может дать представление о семантической позиции местоположения курсора с некоторыми изменениями. Это возможно?

Или существует ли общий способ анализа местоположения курсора и поведения соответственно?

Заранее спасибо.

+1

Вы достигли какого-либо прогресса в написании кода? Мне очень нравится идея иметь функцию завершения кода с зеркалированием кода и XML-схемой. Мне интересно, что раньше никто этого не делал. Можете ли вы дать мне несколько отзывов? – Janning

ответ

2

Если вы используете CodeMirror 2, существует метод getTokenAt, который позволяет анализировать состояние парсера в заданной позиции. Вы можете видеть, что это используется для автозаполнения локальных переменных JavaScript в http://codemirror.net/2/demo/complete.html. Для анализатора XML вы можете проверить свойство контекста состояния, которое является связанным списком объектов, каждый из которых содержит свойство tagName, и свойство prev, связанное с контекстом над ним.

 Смежные вопросы

  • Нет связанных вопросов^_^