Sonarqube CSS / SCSS / меньше анализатора
Отказ от ответственности
Я не хочу продолжать поддерживать этот плагин. Не стесняйтесь, если хотите взять на себя.
Описание
Этот плагин Sonarqube анализирует:
- CSS -файлы
- CSS -код, встроенный в файлы HTML/XHTML
- SCSS файлы
- Меньше файлов
и:
- Комплекты показателей: строки кода, сложности, количества правил и т. Д.
- Проверяет ваш код CSS
- Проверки на дублированный код
- Проверяет различные рекомендации по выявлению потенциальных ошибок, уязвимостей и кодовых запахов, чем:
- 80 проверок на код CSS
- 90 проверок на код SCSS
- 80 проверок на меньший код
- Предоставляет возможность писать свои собственные чеки
Использование
Руководство по установке
- Скачать и установить Sonarqube
- Установите плагин CSS / SCSS / Less с помощью прямой загрузки. Последняя версия совместима с Sonarqube 6.7+.
- Установите свой любимый сканер (сканер Sonarqube, Maven, Ant и т. Д.)
- Проанализируйте свой код
Анализ кода CSS, встроенный в файлы HTML/XHTML
Плагин анализирует код CSS, встроенный в <style type="text/css">...</style> теги в файлах html/xhtml. Для этого, как обязательное условие, Sonarqube должен импортировать эти файлы. Или:
- Установите плагин, импортирующий эти файлы (например, веб -плагин)
- Или включите импорт неизвестных файлов, установив свойство
sonar.import_unknown_files на true
Список файлов, содержащих встроенные CSS для анализа, может быть настроен через свойство sonar.css.embedded.file.suffixes .
картирование правил StyleLint / Sonarqube
Если вы уже используете StyleLint, добавление Sonarqube в ваш стек поможет вам подвести качество кода на другой уровень. Картирование правил StyleLint / Sonarqube может оказать большую помощь, чтобы определить ваш профиль качества Sonarqube.
Пользовательские проверки
Вы думаете о новых ценных чеках? Версия 2.1 или больше предоставляет API для написания собственных пользовательских проверок. Образец плагина с подробными объяснениями доступен здесь. Если ваши пользовательские проверки могут принести пользу сообществу, не стесняйтесь создавать запрос на тягу, чтобы сделать проверку доступным в CSS / SCSS / Mess Mess.
Вы думаете о новых чеках, которые могут принести пользу сообществу, но у вас нет времени или навыков, чтобы написать их? Не стесняйтесь создавать проблему для ваших чеков, которые будут рассматриваться.
Метрики
Функции
Количество правил.
Сложность
Следующие элементы увеличивают сложность одним:
- Селектор класса
- Селектор идентификатора
- Селектор атрибутов
- Селектор типа
- Псевдо -селектор
- Селектор ключевых кадров
- В правиле
Сложность/функция
Он вычисляет сложность/правило, что означает среднее количество селекторов на правило. Это дает измерение того, насколько конкретны селекторы.
Доступные правила
Общий для CSS и SCSS и меньше
- «Важный» флаг должен быть размещен в конце декларации
- "! Важный" флаг не должен использоваться
- Правило "@font-face" должно быть сделано совместимым с требуемыми браузерами
- Теги "fixme" должны быть обработаны
- Теги "Nosonar" не должны использоваться для отключения проблем
- Теги "stylelint-disable" должны быть удалены
- Теги "stylelelint-enable" должны быть удалены
- Свойства «Текст-преобразование» не должны быть установлены на «верхний» или «заглавный» для некоторых языков
- Теги "todo" должны быть обработаны
- @charset должен быть первым элементом в листе стиля, и ему не предшествует ни один персонаж
- Размер модели коробки должен быть тщательно рассмотрен
- Байт-оценка (BOM) не должна использоваться для файлов UTF-8
- Флаг нельзя использовать случай.
- Селекторы класса должны следовать соглашению об именах
- CSS должен быть записан в нижнем случае
- Не следует использовать окрашенные цвета системы.
- Дублированные фоновые изображения должны быть удалены
- Дублированные свойства должны быть удалены
- Каждое объявление должно закончиться полуколоном
- Пустые объявления должны быть удалены
- Пустые правила должны быть удалены
- Пустые таблицы стилей должны быть удалены
- Экспериментальный @-rules не следует использовать
- Экспериментальные идентификаторы не должны использоваться
- Экспериментальные свойства не должны использоваться
- Экспериментальные псевдо-элементы и псевдо-классы не должны использоваться
- Комбинаторы экспериментальных селекторов не должны использоваться
- Файлы должны содержать пустую новую строку в конце
- Файлы не должны иметь слишком много строк
- Следует указать фамилии для шрифтов
- Файлы шрифтов не должны использоваться
- Свойства семейства шрифтов должны заканчиваться общей семьей шрифтов
- Семейство шрифта не должна содержать дублированные фамилии шрифтов
- Запретные свойства не должны использоваться
- Общие фамилии шрифтов не должны быть цитированы
- Градиентные определения должны быть установлены для всех поставщиков
- Селекторы идентификации должны следовать соглашению об именах
- Идентификаторы в селекторах должны быть удалены
- Ведущие нули должны быть удалены
- Линии не должны быть слишком длинными
- Линии не должны заканчиваться
- Отсутствующие префиксы поставщика должны быть добавлены в экспериментальные свойства
- Название чрезмерного элемента должно быть удалено
- Названные цвета не должны использоваться
- Точность числа не должна быть слишком высокой
- Устаревшие свойства не должны использоваться
- Не следует использовать устаревшие псевдо-элементы и псевдо-классы
- Устаревшие комбинаторы селекторов не должны использоваться
- Чрезмерные селекторы должны быть упрощены
- Свойства, которые не работают со свойством «отображения», должны быть удалены
- Значения свойства должны быть действительными
- Относительный протокол URL не должен использоваться
- Регулярное выражение, подобное селекторам, не должно использоваться
- Регулярное выражение на @-Rule
- Регулярное выражение в комментарии
- Регулярное выражение на функции
- Регулярное выражение имущества
- Регулярное выражение на единице
- Свойства правил должны быть упорядочены в алфавитном порядке
- Недорогие свойства должны использоваться, когда это возможно
- Недостаточные свойства не должны использоваться
- Одиночные кавычки должны использоваться вместо двойных кавычек для строк
- Исходный код должен соответствовать стандартам форматирования
- Стандартные свойства должны быть указаны вместе с наставленными поставщиками свойствами
- Звездный взлом не должен использоваться
- Таблицы стилей не должны содержать слишком много правил
- Таблицы стилей не должны содержать слишком много селекторов
- Символы таблиц не должны использоваться
- Количество веб -шрифтов должно быть уменьшено
- Должно быть одно объявление на строку
- Следует удалить нули для числовых значений
- Типы в селекторах должны быть удалены
- Подчеркнуть взлом не должен использоваться
- Единицы для значений нулевой длины должны быть удалены
- Универсальный селектор не должен использоваться в качестве ключевой части
- Неизвестно @-rules следует удалить
- Неизвестные свойства должны быть удалены
- Неизвестные псевдо-элементы и псевдо-классы должны быть удалены
- Неизвестные селекторы должны быть удалены
- Url 'paper.gif' никогда не следует использовать
- URL должен быть указан
Специфичный для CSS
- Правило "@Import" не должно использоваться
- Правила @IMPORT должны предшествовать всем остальным правилам и правилам стиля
- Переменные CSS должны следовать соглашению об именах
- Функции эксперимента не должны использоваться
- Не следует использовать устаревшие функции
- Стильсы не должны "@Import" слишком много других листов
- Неизвестные функции CSS должны быть удалены
Специфичный для CSS, встроенный в HTML/XHTML
- CSS не должен быть встроен в HTML -файлы
Специфичный для SCSS
- Директивы @debug не должны использоваться в производственном коде
- Директивы @не должны использоваться
- @if ... @else, если ... конструкции должны закончиться с Директивой @else
- Всегда используйте «через» вместо «для» в директивах @FOR
- Условия не должны быть слишком сложными
- Директивы управления потоком @if, @else if, @else, @for, @while, и @each не должны быть вложенными слишком глубоко
- Пользовательские функции должны следовать соглашению об именах
- Объявления и директивы должны быть должным образом отсортированы
- Управляемые бессмысленные многослойные строки не должны использоваться
- Директива пустого потока управления должна быть удалена
- Пустые микшины должны быть удалены
- Микшины должны следовать соглашению об именах
- Вложенные свойства должны определить как минимум два свойства
- Селекторы -заполнители должны следовать соглашению об именах
- Связанный @if / @else, если директивы не должны иметь такого же условия
- Наборы правил не должны быть вложены слишком глубоко
- Переменные SCSS должны следовать соглашению об именах
- Одностроительные комментарии (//) должны быть предпочтительны в многострочных комментариях (/ * ... */)
- Две ветви в одной и той же условной структуре не должны иметь точно такую же реализацию
- Бесполезные скобки после @include и @mixin без параметра должны быть удалены
Специфичный для меньшего
- Униженная функция «e» сбегает синтаксис «E» с экипировкой
- Меньше переменных должно следовать соглашению об именах
- Наборы правил не должны быть вложены слишком глубоко
- Та же переменная не должна быть объявлена несколько раз в рамках одной и той же области
- Одностроительные комментарии (//) должны быть предпочтительны в многострочных комментариях (/ * ... */)
- Неизвестные CSS / меньше функций должны быть удалены
- Переменные должны быть объявлены в начале блока