feat: Add Dart, Scala, SCSS, SASS, Elixir, Lua, Perl language detection resolves #165
This commit is contained in:
@@ -310,6 +310,67 @@ LANGUAGE_PATTERNS: dict[str, list[tuple[str, int]]] = {
|
||||
(r"\b_ready\s*\(", 4),
|
||||
(r"\b_process\s*\(", 4),
|
||||
],
|
||||
"dart": [
|
||||
(r"\bimport\s+['\"]package:", 5),
|
||||
(r"\bclass\s+\w+\s+extends\s+StatelessWidget", 5),
|
||||
(r"\bclass\s+\w+\s+extends\s+StatefulWidget", 5),
|
||||
(r"@override\b", 4),
|
||||
(r"\bWidget\s+build\s*\(", 5),
|
||||
(r"\bimport\s+['\"]dart:", 5),
|
||||
(r"\bfinal\s+\w+\s+\w+;", 4),
|
||||
(r"=>\s*\w+\(", 4),
|
||||
(r"\basync\s*\{", 3),
|
||||
(r"\bawait\s+", 3),
|
||||
(r"\bsetState\s*\(", 4),
|
||||
(r"\bvoid\s+main\s*\(", 3),
|
||||
],
|
||||
"scala": [
|
||||
(r"\bcase\s+class\s+\w+", 5),
|
||||
(r"\btrait\s+\w+", 5),
|
||||
(r"\bdef\s+\w+.*:\s*\w+", 5),
|
||||
(r"\bimport\s+scala\.", 4),
|
||||
(r"\bmatch\s*\{", 4),
|
||||
(r"\bval\s+\w+.*:\s*\w+", 4),
|
||||
(r"\bobject\s+\w+", 5),
|
||||
(r"=>", 3),
|
||||
(r"\bdef\s+\w+\[\w+\]", 4),
|
||||
(r"\bextends\s+\w+", 2),
|
||||
],
|
||||
"elixir": [
|
||||
(r"\bdefmodule\s+[A-Z]", 5),
|
||||
(r"\bdef\s+\w+\s+do\b", 5),
|
||||
(r"\bdefp\s+\w+", 5),
|
||||
(r"\|>", 5),
|
||||
(r"\buse\s+[A-Z]", 4),
|
||||
(r"\balias\s+[A-Z]", 4),
|
||||
(r"#\{", 4),
|
||||
(r"@[\w_]+", 3),
|
||||
(r"\bcase\s+\w+\s+do\b", 3),
|
||||
],
|
||||
"lua": [
|
||||
(r"\blocal\s+\w+\s*=", 5),
|
||||
(r"\.\.\.(?!\.)", 5),
|
||||
(r"\brepeat\b.*\buntil\b", 5),
|
||||
(r"~=", 4),
|
||||
(r"\belseif\b", 4),
|
||||
(r"\bthen\b", 3),
|
||||
(r"\bfunction\s+\w+\s*\(", 3),
|
||||
(r"\bend\b", 2),
|
||||
],
|
||||
"perl": [
|
||||
(r"\bmy\s+\$\w+", 5),
|
||||
(r"\buse\s+strict", 5),
|
||||
(r"\buse\s+warnings", 5),
|
||||
(r"\bsub\s+\w+\s*\{", 5),
|
||||
(r"\bchomp\s*\(", 5),
|
||||
(r"@\w+\s*=", 5),
|
||||
(r"%\w+\s*=", 5),
|
||||
(r"\$\w+\s*=~\s*/", 4),
|
||||
(r"\$[0-9]+", 4),
|
||||
(r"->", 3),
|
||||
],
|
||||
|
||||
|
||||
# ===== Markup/Config Languages =====
|
||||
"html": [
|
||||
(r"<!DOCTYPE\s+html>", 5),
|
||||
@@ -327,6 +388,28 @@ LANGUAGE_PATTERNS: dict[str, list[tuple[str, int]]] = {
|
||||
(r"#[\w-]+\s*\{", 2),
|
||||
(r"@import", 2),
|
||||
],
|
||||
"scss": [
|
||||
(r"\$[\w-]+\s*:", 5),
|
||||
(r"@mixin\s+[\w-]+", 5),
|
||||
(r"@include\s+[\w-]+", 5),
|
||||
(r"@extend\s+", 4),
|
||||
(r"@function\s+[\w-]+", 4),
|
||||
(r"&[:\.]", 4),
|
||||
(r"#\{", 4),
|
||||
(r"@import\s+['\"]", 3),
|
||||
(r"@if\s+", 5),
|
||||
(r"@for\s+", 5),
|
||||
(r"@each\s+", 5),
|
||||
],
|
||||
"sass": [
|
||||
(r"\$[\w-]+\s*:", 5),
|
||||
(r"=[\w-]+", 5),
|
||||
(r"\+[\w-]+", 5),
|
||||
(r"@for\s+.+\s+through\s+", 5),
|
||||
(r"@mixin\s+[\w-]+", 4),
|
||||
(r"@if\s+", 4),
|
||||
(r"^\s{2,}[\w-]+:", 3),
|
||||
],
|
||||
"json": [
|
||||
(r"^\s*\{", 3),
|
||||
(r"^\s*\[", 3),
|
||||
|
||||
Reference in New Issue
Block a user