Pull to refresh

Как настроить или отключить линтинг во встроенном редакторе кода

WordPress
Под катом небольшая заметка о том как можно настроить правила для линтинга во встроенном редакторе кода WordPress.

Начиная с версии 4.9 в WordPress встроен редактор CodeMirror. Он поддерживает подстветку синтаксиса для более 100 языков, а также имеет встроенный анализатор кода.

Итак, для изменения параметров нам поможет фильтр wp_code_editor_settings

Первым параметром он принимает массив опций для редактора кода. В нем нас интересует лишь несколько свойств. Подробности см. в документации.

add_filter( 'wp_code_editor_settings', 'change_code_editor_settings');
function change_code_editor_settings( $settings ) {

  /**
   * Массив параметров передаваемых в codemirror
   * @see https://codemirror.net/doc/manual.html#config
   */
  $settings['codemirror']


  /**
   * Массив параметров для CSSLint
   * @see https://github.com/CSSLint/csslint/wiki
   */
  $settings['csslint']


  /**
   * Массив параметров для JSHint
   * @see https://jshint.com/docs/options
   */

  $settings['jshint']
  
  
  /**
   * Массив параметров для HTMLHint
   * @see https://github.com/htmlhint/HTMLHint/wiki/Rules
   */
  $settings['htmlhint']


  return $settings;
}

Примеры


Отключим проверку CSSLint оставив при этом подсветку синтаксиса. (Может быть полезно если вы используете в теме css переменные. #720)

add_filter( 'wp_code_editor_settings', 'disable_csslint' );
function disable_csslint( $settings ){
	
  if ($settings['codemirror']['mode'] === 'css') {
    $settings['codemirror']['lint'] = false;
  }

  return $settings;
}

Зарегистрируем глобальную переменную.

add_filter( 'wp_code_editor_settings', 'change_code_editor_settings');
function change_code_editor_settings( $settings ) {
  $settings['jshint']['globals']['axios'] = false // Глобальная переменная существует
  $settings['jshint']['globals']['user_rates'] = true // Глобальная переменная существует и доступна для записи
  

  return $settings;
}

Запретим использовать антибуты без значений

add_filter( 'wp_code_editor_settings', 'change_code_editor_settings');
function change_code_editor_settings( $settings ) {
  $settings['htmlhint']['attr-value-not-empty'] = true

  return $settings;
}
Only registered users can participate in poll. Log in, please.
Пользуетесь встроенным редактором кода?
0% Только его и использую. Это очень удобно. 0
29.41% Иногда, для мелких правок. 5
35.29% Предпочитаю код в любимой IDE. 6
35.29% Отключаю редактор кода сразу как запускаю сайт. Это не безопасно! 6
17 users voted. 9 users abstained.
Tags:wordpresscodemirror
Hubs: WordPress
Total votes 8: ↑8 and ↓0 +8
Views1.5K

Popular right now

Верстальщик на Wordpress
to 80,000 ₽JetLendRemote job
WordPress Support Engineer
from 100,000 ₽UpSolutionRemote job
Fullstack Developer (WordPress-php)
from 3,000 to 4,000 $InovisRemote job
Fullstack разработчик (PHP)
from 2,000 to 4,000 $BOOKLYRemote job

Top of the last 24 hours