Завершение SVG Codemirror - PullRequest
       10

Завершение SVG Codemirror

0 голосов
/ 18 декабря 2018

Я пытаюсь создать режим SVG для CodeMirror (по крайней мере, чтобы иметь отправную точку).Я скопировал режим htmlmixed и заменил html на svg (поскольку он одинаковый, только с разным завершением)

Я также удалил все теги html и вместо этого поставил (в виде подсказок):

  var s = { attrs: {} }; // Simple tag, reused for a whole lot of tags

  var data = {
      svg: {
          attrs: {
              width: null, height: null, viewBox: null
          }
      },
      g: s
  };

  var globalAttrs = {
    id: null,
    'class': null,
    lang: ["en", "es"],
    style: null
  };

но когда я набираю <sv или <svg wid и нажимаю CTRL + Пробел я не получаю завершение.Что я сделал не так?

Я создаю редактор из textarea:

var text = document.querySelector('textarea');
var myCodeMirror = CodeMirror.fromTextArea(text, {
    mode:  "svg",
    extraKeys: {"Ctrl-Space": "autocomplete"},
});

Вот мое CodePen демо .

Если я меняю режимв htmlmixed завершенные работы.

1 Ответ

0 голосов
/ 18 декабря 2018

Параметр Codemirror.registerHelper("hint", name) name не связан с именем режима.Вы можете переопределить функцию автозаполнения и заставить ее вызывать showHint:

CodeMirror.commands.autocomplete = function(cm) {
  CodeMirror.showHint(cm, CodeMirror.hint.name) // name being the name you passed to registerHelper
}

Кроме того, обратный вызов для Codemirror.registerHelper("hint", name, callback) должен возвращать объект, а не функцию.

Обновленный CodePen

...