Skip to content

Commit

Permalink
chore: revert LanguageKind
Browse files Browse the repository at this point in the history
  • Loading branch information
togami2864 committed Mar 28, 2024
1 parent edebdaf commit 5703e8d
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 92 deletions.
4 changes: 2 additions & 2 deletions crates/biome_analyze/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ pub use crate::registry::{
RuleRegistry, RuleRegistryBuilder, RuleSuppressions,
};
pub use crate::rule::{
CategoryLanguage, FixKind, GroupCategory, GroupLanguage, LanguageKind, Rule, RuleAction,
RuleDiagnostic, RuleGroup, RuleMeta, RuleMetadata, RuleSource, RuleSourceKind, SuppressAction,
CategoryLanguage, FixKind, GroupCategory, GroupLanguage, Rule, RuleAction, RuleDiagnostic,
RuleGroup, RuleMeta, RuleMetadata, RuleSource, RuleSourceKind, SuppressAction,
};
pub use crate::services::{FromServices, MissingServicesDiagnostic, ServiceBag};
pub use crate::signals::{
Expand Down
30 changes: 0 additions & 30 deletions crates/biome_analyze/src/rule.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,6 @@ pub struct RuleMetadata {
pub recommended: bool,
/// The kind of fix
pub fix_kind: Option<FixKind>,
/// The target language
pub language_kind: Option<LanguageKind>,
/// The source URL of the rule
pub source: Option<RuleSource>,
/// The source kind of the rule
Expand Down Expand Up @@ -229,28 +227,6 @@ impl RuleSourceKind {
}
}

#[derive(Debug, Default, Clone)]
pub enum LanguageKind {
#[default]
Js,
Json,
Css,
}

impl LanguageKind {
pub const fn is_js(&self) -> bool {
matches!(self, Self::Js)
}

pub const fn is_json(&self) -> bool {
matches!(self, Self::Json)
}

pub const fn is_css(&self) -> bool {
matches!(self, Self::Css)
}
}

impl RuleMetadata {
pub const fn new(version: &'static str, name: &'static str, docs: &'static str) -> Self {
Self {
Expand All @@ -262,7 +238,6 @@ impl RuleMetadata {
fix_kind: None,
source: None,
source_kind: None,
language_kind: None,
}
}

Expand Down Expand Up @@ -293,11 +268,6 @@ impl RuleMetadata {
self.source_kind = Some(source_kind);
self
}

pub const fn language_kind(mut self, language_kind: LanguageKind) -> Self {
self.language_kind = Some(language_kind);
self
}
}

pub trait RuleMeta {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use biome_analyze::{context::RuleContext, declare_rule, Ast, LanguageKind, Rule, RuleDiagnostic};
use biome_analyze::{context::RuleContext, declare_rule, Ast, Rule, RuleDiagnostic};
use biome_console::markup;
use biome_css_syntax::CssDeclarationOrRuleBlock;
use biome_rowan::AstNode;
Expand Down Expand Up @@ -28,7 +28,6 @@ declare_rule! {
version: "next",
name: "noColorInvalidHex",
recommended: false,
language_kind: LanguageKind::Css,
}
}

Expand Down
2 changes: 1 addition & 1 deletion website/src/components/generated/NumberOfRules.astro

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

51 changes: 26 additions & 25 deletions website/src/content/docs/linter/rules/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -249,28 +249,29 @@ warning, depending on whether we intend for the rule to be recommended or not wh
Nursery rules get promoted to other groups once they become stable or may be removed.

Rules that belong to this group <strong>are not subject to semantic version</strong>.
| Rule name | Description | Properties | Language |
| --- | --- | --- | --- |
| [noBarrelFile](/linter/rules/no-barrel-file) | Disallow the use of barrel file. | | <img alt="JavaScript logo" src="/src/assets/svg/js-icon.svg" /> |
| [noColorInvalidHex](/linter/rules/no-color-invalid-hex) | <strong>[WIP] This rule hasn't been implemented yet.</strong> | | <img alt="JavaScript logo" src="/src/assets/svg/css-icon.svg" /> |
| [noConsole](/linter/rules/no-console) | Disallow the use of <code>console</code>. | <span aria-label="The rule has an unsafe fix" role="img" title="The rule has an unsafe fix">⚠️ </span> | <img alt="JavaScript logo" src="/src/assets/svg/js-icon.svg" /> |
| [noDoneCallback](/linter/rules/no-done-callback) | Disallow using a callback in asynchronous tests and hooks. | | <img alt="JavaScript logo" src="/src/assets/svg/js-icon.svg" /> |
| [noDuplicateElseIf](/linter/rules/no-duplicate-else-if) | Disallow duplicate conditions in if-else-if chains | | <img alt="JavaScript logo" src="/src/assets/svg/js-icon.svg" /> |
| [noDuplicateJsonKeys](/linter/rules/no-duplicate-json-keys) | Disallow two keys with the same name inside a JSON object. | | <img alt="JavaScript logo" src="/src/assets/svg/js-icon.svg" /> |
| [noDuplicateTestHooks](/linter/rules/no-duplicate-test-hooks) | A <code>describe</code> block should not contain duplicate hooks. | | <img alt="JavaScript logo" src="/src/assets/svg/js-icon.svg" /> |
| [noEvolvingAny](/linter/rules/no-evolving-any) | Disallow variables from evolving into <code>any</code> type through reassignments. | | <img alt="JavaScript logo" src="/src/assets/svg/js-icon.svg" /> |
| [noExcessiveNestedTestSuites](/linter/rules/no-excessive-nested-test-suites) | This rule enforces a maximum depth to nested <code>describe()</code> in test files. | | <img alt="JavaScript logo" src="/src/assets/svg/js-icon.svg" /> |
| [noExportsInTest](/linter/rules/no-exports-in-test) | Disallow using <code>export</code> or <code>module.exports</code> in files containing tests | | <img alt="JavaScript logo" src="/src/assets/svg/js-icon.svg" /> |
| [noFocusedTests](/linter/rules/no-focused-tests) | Disallow focused tests. | <span aria-label="The rule has an unsafe fix" role="img" title="The rule has an unsafe fix">⚠️ </span> | <img alt="JavaScript logo" src="/src/assets/svg/js-icon.svg" /> |
| [noNamespaceImport](/linter/rules/no-namespace-import) | Disallow the use of namespace imports. | | <img alt="JavaScript logo" src="/src/assets/svg/js-icon.svg" /> |
| [noNodejsModules](/linter/rules/no-nodejs-modules) | Forbid the use of Node.js builtin modules. | | <img alt="JavaScript logo" src="/src/assets/svg/js-icon.svg" /> |
| [noReExportAll](/linter/rules/no-re-export-all) | Avoid re-export all. | | <img alt="JavaScript logo" src="/src/assets/svg/js-icon.svg" /> |
| [noRestrictedImports](/linter/rules/no-restricted-imports) | Disallow specified modules when loaded by import or require. | | <img alt="JavaScript logo" src="/src/assets/svg/js-icon.svg" /> |
| [noSemicolonInJsx](/linter/rules/no-semicolon-in-jsx) | It detects possible &quot;wrong&quot; semicolons inside JSX elements. | | <img alt="JavaScript logo" src="/src/assets/svg/js-icon.svg" /> |
| [noSkippedTests](/linter/rules/no-skipped-tests) | Disallow disabled tests. | <span aria-label="The rule has an unsafe fix" role="img" title="The rule has an unsafe fix">⚠️ </span> | <img alt="JavaScript logo" src="/src/assets/svg/js-icon.svg" /> |
| [noUndeclaredDependencies](/linter/rules/no-undeclared-dependencies) | Disallow the use of dependencies that aren't specified in the <code>package.json</code>. | | <img alt="JavaScript logo" src="/src/assets/svg/js-icon.svg" /> |
| [noUselessTernary](/linter/rules/no-useless-ternary) | Disallow ternary operators when simpler alternatives exist. | <span aria-label="The rule has an unsafe fix" role="img" title="The rule has an unsafe fix">⚠️ </span> | <img alt="JavaScript logo" src="/src/assets/svg/js-icon.svg" /> |
| [useImportRestrictions](/linter/rules/use-import-restrictions) | Disallows package private imports. | | <img alt="JavaScript logo" src="/src/assets/svg/js-icon.svg" /> |
| [useJsxKeyInIterable](/linter/rules/use-jsx-key-in-iterable) | Disallow missing key props in iterators/collection literals. | | <img alt="JavaScript logo" src="/src/assets/svg/js-icon.svg" /> |
| [useNodeAssertStrict](/linter/rules/use-node-assert-strict) | Promotes the usage of <code>node:assert/strict</code> over <code>node:assert</code>. | <span aria-label="The rule has a safe fix" role="img" title="The rule has a safe fix">🔧 </span> | <img alt="JavaScript logo" src="/src/assets/svg/js-icon.svg" /> |
| [useSortedClasses](/linter/rules/use-sorted-classes) | Enforce the sorting of CSS utility classes. | <span aria-label="The rule has an unsafe fix" role="img" title="The rule has an unsafe fix">⚠️ </span> | <img alt="JavaScript logo" src="/src/assets/svg/js-icon.svg" /> |
| Rule name | Description | Properties |
| --- | --- | --- |
| [noBarrelFile](/linter/rules/no-barrel-file) | Disallow the use of barrel file. | |
| [noColorInvalidHex](/linter/rules/no-color-invalid-hex) | <strong>[WIP] This rule hasn't been implemented yet.</strong> | |
| [noConsole](/linter/rules/no-console) | Disallow the use of <code>console</code>. | <span aria-label="The rule has an unsafe fix" role="img" title="The rule has an unsafe fix">⚠️ </span> |
| [noDoneCallback](/linter/rules/no-done-callback) | Disallow using a callback in asynchronous tests and hooks. | |
| [noDuplicateElseIf](/linter/rules/no-duplicate-else-if) | Disallow duplicate conditions in if-else-if chains | |
| [noDuplicateJsonKeys](/linter/rules/no-duplicate-json-keys) | Disallow two keys with the same name inside a JSON object. | |
| [noDuplicateTestHooks](/linter/rules/no-duplicate-test-hooks) | A <code>describe</code> block should not contain duplicate hooks. | |
| [noEvolvingAny](/linter/rules/no-evolving-any) | Disallow variables from evolving into <code>any</code> type through reassignments. | |
| [noExcessiveNestedTestSuites](/linter/rules/no-excessive-nested-test-suites) | This rule enforces a maximum depth to nested <code>describe()</code> in test files. | |
| [noExportsInTest](/linter/rules/no-exports-in-test) | Disallow using <code>export</code> or <code>module.exports</code> in files containing tests | |
| [noFocusedTests](/linter/rules/no-focused-tests) | Disallow focused tests. | <span aria-label="The rule has an unsafe fix" role="img" title="The rule has an unsafe fix">⚠️ </span> |
| [noMisplacedAssertion](/linter/rules/no-misplaced-assertion) | Checks that the assertion function, for example <code>expect</code>, is placed inside an <code>it()</code> function call. | |
| [noNamespaceImport](/linter/rules/no-namespace-import) | Disallow the use of namespace imports. | |
| [noNodejsModules](/linter/rules/no-nodejs-modules) | Forbid the use of Node.js builtin modules. | |
| [noReExportAll](/linter/rules/no-re-export-all) | Avoid re-export all. | |
| [noRestrictedImports](/linter/rules/no-restricted-imports) | Disallow specified modules when loaded by import or require. | |
| [noSkippedTests](/linter/rules/no-skipped-tests) | Disallow disabled tests. | <span aria-label="The rule has an unsafe fix" role="img" title="The rule has an unsafe fix">⚠️ </span> |
| [noSuspiciousSemicolonInJsx](/linter/rules/no-suspicious-semicolon-in-jsx) | It detects possible &quot;wrong&quot; semicolons inside JSX elements. | |
| [noUndeclaredDependencies](/linter/rules/no-undeclared-dependencies) | Disallow the use of dependencies that aren't specified in the <code>package.json</code>. | |
| [noUselessTernary](/linter/rules/no-useless-ternary) | Disallow ternary operators when simpler alternatives exist. | <span aria-label="The rule has an unsafe fix" role="img" title="The rule has an unsafe fix">⚠️ </span> |
| [useImportRestrictions](/linter/rules/use-import-restrictions) | Disallows package private imports. | |
| [useJsxKeyInIterable](/linter/rules/use-jsx-key-in-iterable) | Disallow missing key props in iterators/collection literals. | |
| [useNodeAssertStrict](/linter/rules/use-node-assert-strict) | Promotes the usage of <code>node:assert/strict</code> over <code>node:assert</code>. | <span aria-label="The rule has a safe fix" role="img" title="The rule has a safe fix">🔧 </span> |
| [useSortedClasses](/linter/rules/use-sorted-classes) | Enforce the sorting of CSS utility classes. | <span aria-label="The rule has an unsafe fix" role="img" title="The rule has an unsafe fix">⚠️ </span> |
37 changes: 5 additions & 32 deletions xtask/lintdoc/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ mod rules_sources;

use crate::rules_sources::generate_rule_sources;
use biome_analyze::{
AnalysisFilter, AnalyzerOptions, ControlFlow, FixKind, GroupCategory, LanguageKind, Queryable,
AnalysisFilter, AnalyzerOptions, ControlFlow, FixKind, GroupCategory, Queryable,
RegistryVisitor, Rule, RuleCategory, RuleFilter, RuleGroup, RuleMetadata, RuleSource,
RuleSourceKind,
};
Expand Down Expand Up @@ -241,32 +241,12 @@ fn generate_group(
writeln!(main_page_buffer)?;
write_markup_to_string(main_page_buffer, description)?;
writeln!(main_page_buffer)?;
if is_nursery {
writeln!(
main_page_buffer,
"| Rule name | Description | Properties | Language |"
)?;
writeln!(main_page_buffer, "| --- | --- | --- | --- |")?;
} else {
writeln!(main_page_buffer, "| Rule name | Description | Properties |")?;
writeln!(main_page_buffer, "| --- | --- | --- |")?;
}
writeln!(main_page_buffer, "| Rule name | Description | Properties |")?;
writeln!(main_page_buffer, "| --- | --- | --- |")?;

for (rule, meta) in rules {
let is_recommended = !is_nursery && meta.recommended;
let dashed_rule = Case::Kebab.convert(rule);
let lang_kind = meta.language_kind.unwrap_or_default();
let lang_icon = match lang_kind {
LanguageKind::Js => {
"<img alt=\"JavaScript logo\" src=\"/src/assets/svg/js-icon.svg\" />"
}
LanguageKind::Json => {
"<img alt=\"JavaScript logo\" src=\"/src/assets/svg/json-icon.svg\" />"
}
LanguageKind::Css => {
"<img alt=\"JavaScript logo\" src=\"/src/assets/svg/css-icon.svg\" />"
}
};
if is_recommended {
recommended_rules.push_str(&format!(
"\t<li><a href='/linter/rules/{dashed_rule}'>{rule}</a></li>\n"
Expand Down Expand Up @@ -301,17 +281,10 @@ fn generate_group(
let mut summary_html = Vec::new();
write_html(&mut summary_html, summary.into_iter())?;
let summary_html = String::from_utf8_lossy(&summary_html);
if is_nursery {
write!(
write!(
main_page_buffer,
"| [{rule}](/linter/rules/{dashed_rule}) | {summary_html} | {properties} | {lang_icon} |"
"| [{rule}](/linter/rules/{dashed_rule}) | {summary_html} | {properties} |"
)?;
} else {
write!(
main_page_buffer,
"| [{rule}](/linter/rules/{dashed_rule}) | {summary_html} | {properties} |"
)?;
}

writeln!(main_page_buffer)?;
}
Expand Down

0 comments on commit 5703e8d

Please sign in to comment.