2017-01-08 2 views
2

Я использую библиотеку CodeMirror, которая является удивительной. Редактор кода, который я являюсь istantition, является частью формы, и поэтому я хочу сделать базовую проверку с линией, чтобы увидеть, действительно ли вход пользователя действителен. Если код не подходит, я не хочу обрабатывать форму.CodeMirror - получить листинг результата извне редактора

Итак, возникает вопрос: существует ли метод в экземпляре редактора CodeMirror, который позволит мне получить результат перебора? Я просматриваю документы и Google, но не нашел ничего полезного. Есть этот метод performLint, который добавляется в редактор, однако он не возвращает результаты листинга.

+0

Что такое линт? – dandavis

+0

Я имею в виду список ошибок/предупреждений, возвращаемых с помощью инструмента линта, определенного для редактора. Мне нужно это вне редактора, так что я могу узнать, нормально ли содержимое редактора – patryk

+0

, вы можете проверить строку 'значение' редактора с помощью специального инструмента или искать маркеры codemirror для указания тех предупреждения. – dandavis

ответ

4

Существует не какой-либо конкретный метод получения результатов поиска, однако при определении свойства getAnnotations на опцию lint имеется крючок.

Примечание: в этом примере предполагается, что вы используете CSS, но то же самое применимо и к другим типам.

Базовый набор опций, триггер пыление будет что-то вроде этого:

 var codeMirrorOptions = { 

      "lineNumbers": true, 
      "indentWithTabs": true, 
      "mode": "css", 
      "gutters": ['CodeMirror-lint-markers'], 
      "lint": true 

     } 

Однако вы можете указать объект (вместо BOOL) как свойство ссылка:

 "lint": { 
       "getAnnotations" :css_validator, 
       "async":true 
      } 

и затем определите свою собственную функцию валидатора. Эта функция может просто вызвать прилагаемый при условии валидатора:

 function css_validator(cm, updateLinting, options) { 
      // call the built in css linter from addon/lint/css-lint.js 
      var errors = CodeMirror.lint.css(cm); 

      updateLinting(errors); 

     } 

На данный момент вы просто копировали поведение ворса: верно - но теперь «ошибка» переменная содержит массив ошибок линта. if errors.length == 0, что указывает на отсутствие ошибок.

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