2025-02-21 22:58:10 +02:00
|
|
|
import 'package:highlight/highlight.dart';
|
2025-02-21 17:46:41 +02:00
|
|
|
|
devbox setup, dep upgrades, lint fixes, Android build fixes
- Add devbox.json pinning Flutter 3.35.7, Android SDK (Nix flake),
openjdk17, just, openssl
- Add android/nix-android-sdk/ Nix flake + flake.lock + Android Studio
config script
- Add justfile with build/get/upgrade/icons/analyze/rebuild recipes
- flutter pub upgrade --major-versions: file_picker ^11, google_fonts ^8,
permission_handler ^12, share_plus ^12, flutter_lints ^6 (+71 transitive)
- Fix file_picker v11 API: FilePicker.platform → FilePicker.getDirectoryPath()
- Fix all 37 analyzer issues: deprecated APIs (window, WillPopScope, Share,
SvgPicture color), async BuildContext guards, key constructors, private
createState() return types, unused locals, print → debugPrint, etc.
- Hook _handleCommand into onSubmitted for : prefix commands
- Android: Gradle 8.3→8.11.1, AGP 8.2.2→8.9.1, KGP 1.8.22→2.2.20,
compileSdk/targetSdk 34→36, namespace auto-derivation for library modules,
kotlin.compiler.execution.strategy=in-process
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 17:08:29 +03:00
|
|
|
final markdown = Mode(
|
|
|
|
|
refs: {},
|
|
|
|
|
aliases: [
|
|
|
|
|
"md",
|
|
|
|
|
"mkdown",
|
|
|
|
|
"mkd"
|
|
|
|
|
],
|
|
|
|
|
contains: [
|
|
|
|
|
// Headers (with distinct classes for each level)
|
|
|
|
|
Mode(
|
|
|
|
|
className: "header",
|
|
|
|
|
variants: [
|
|
|
|
|
// Level 1 header (#)
|
|
|
|
|
Mode(
|
|
|
|
|
className: "header-h1",
|
|
|
|
|
begin: "^#\\s+",
|
|
|
|
|
end: "\$"
|
|
|
|
|
),
|
|
|
|
|
// Level 2 header (##)
|
|
|
|
|
Mode(
|
|
|
|
|
className: "header-h2",
|
|
|
|
|
begin: "^##\\s+",
|
|
|
|
|
end: "\$"
|
|
|
|
|
),
|
|
|
|
|
// Level 3 header (###)
|
|
|
|
|
Mode(
|
|
|
|
|
className: "header-h3",
|
|
|
|
|
begin: "^###\\s+",
|
|
|
|
|
end: "\$"
|
|
|
|
|
),
|
|
|
|
|
// Level 4 header (####)
|
|
|
|
|
Mode(
|
|
|
|
|
className: "header-h4",
|
|
|
|
|
begin: "^####\\s+",
|
|
|
|
|
end: "\$"
|
|
|
|
|
),
|
|
|
|
|
// Level 5 header (#####)
|
|
|
|
|
Mode(
|
|
|
|
|
className: "header-h5",
|
|
|
|
|
begin: "^#####\\s+",
|
|
|
|
|
end: "\$"
|
|
|
|
|
),
|
|
|
|
|
// Level 6 header (######)
|
|
|
|
|
Mode(
|
|
|
|
|
className: "header-h6",
|
|
|
|
|
begin: "^######\\s+",
|
|
|
|
|
end: "\$"
|
|
|
|
|
),
|
|
|
|
|
// Underlined headers (=== and ---)
|
|
|
|
|
Mode(
|
|
|
|
|
className: "header-underline",
|
|
|
|
|
begin: "^.+?\\n[=-]{2,}\$"
|
|
|
|
|
)
|
|
|
|
|
]
|
|
|
|
|
),
|
|
|
|
|
|
|
|
|
|
// HTML tags
|
|
|
|
|
Mode(
|
|
|
|
|
begin: "<",
|
|
|
|
|
end: ">",
|
|
|
|
|
subLanguage: ["xml"],
|
|
|
|
|
relevance: 0
|
|
|
|
|
),
|
|
|
|
|
|
|
|
|
|
// Lists
|
|
|
|
|
Mode(
|
|
|
|
|
className: "list",
|
|
|
|
|
begin: "^\\s*([*+-]|(\\d+\\.))\\s+"
|
|
|
|
|
),
|
|
|
|
|
|
|
|
|
|
// Bold text
|
|
|
|
|
Mode(
|
|
|
|
|
className: "bold",
|
|
|
|
|
begin: "[*_]{2}.+?[*_]{2}"
|
|
|
|
|
),
|
|
|
|
|
|
|
|
|
|
// Italic text
|
|
|
|
|
Mode(
|
|
|
|
|
className: "italic",
|
|
|
|
|
variants: [
|
|
|
|
|
Mode(begin: "\\*.+?\\*"),
|
|
|
|
|
Mode(begin: "_.+?_", relevance: 0)
|
|
|
|
|
]
|
|
|
|
|
),
|
|
|
|
|
|
|
|
|
|
// Blockquotes
|
|
|
|
|
Mode(
|
|
|
|
|
className: "blockquote",
|
|
|
|
|
begin: "^>\\s+",
|
|
|
|
|
end: "\$"
|
|
|
|
|
),
|
|
|
|
|
|
|
|
|
|
// Code blocks and inline code
|
|
|
|
|
Mode(
|
|
|
|
|
className: "code",
|
|
|
|
|
variants: [
|
|
|
|
|
Mode(begin: "^```\\w*\\s*\$", end: "^```[ ]*\$"), // Fenced code blocks
|
|
|
|
|
Mode(begin: "`.+?`"), // Inline code
|
|
|
|
|
Mode(begin: "^( {4}|\\t)", end: "\$", relevance: 0) // Indented code blocks
|
|
|
|
|
]
|
|
|
|
|
),
|
|
|
|
|
|
|
|
|
|
// Horizontal rules
|
|
|
|
|
Mode(
|
|
|
|
|
className: "horizontal-rule",
|
|
|
|
|
begin: "^[-\\*]{3,}",
|
|
|
|
|
end: "\$"
|
|
|
|
|
),
|
|
|
|
|
|
|
|
|
|
// Links and images
|
|
|
|
|
Mode(
|
|
|
|
|
begin: "\\[.+?\\][\\(\\[].*?[\\)\\]]",
|
|
|
|
|
returnBegin: true,
|
|
|
|
|
contains: [
|
|
|
|
|
Mode(
|
|
|
|
|
className: "link-text",
|
|
|
|
|
begin: "\\[",
|
|
|
|
|
end: "\\]",
|
|
|
|
|
excludeBegin: true,
|
|
|
|
|
returnEnd: true,
|
|
|
|
|
relevance: 0
|
|
|
|
|
),
|
|
|
|
|
Mode(
|
|
|
|
|
className: "link-url",
|
|
|
|
|
begin: "\\]\\(",
|
|
|
|
|
end: "\\)",
|
|
|
|
|
excludeBegin: true,
|
|
|
|
|
excludeEnd: true
|
|
|
|
|
),
|
|
|
|
|
Mode(
|
|
|
|
|
className: "link-reference",
|
|
|
|
|
begin: "\\]\\[",
|
|
|
|
|
end: "\\]",
|
|
|
|
|
excludeBegin: true,
|
|
|
|
|
excludeEnd: true
|
|
|
|
|
)
|
|
|
|
|
],
|
|
|
|
|
relevance: 10
|
|
|
|
|
),
|
|
|
|
|
|
|
|
|
|
// Reference-style links
|
|
|
|
|
Mode(
|
|
|
|
|
begin: "^\\[[^\\n]+\\]:",
|
|
|
|
|
returnBegin: true,
|
|
|
|
|
contains: [
|
|
|
|
|
Mode(
|
|
|
|
|
className: "link-reference",
|
|
|
|
|
begin: "\\[",
|
|
|
|
|
end: "\\]",
|
|
|
|
|
excludeBegin: true,
|
|
|
|
|
excludeEnd: true
|
|
|
|
|
),
|
|
|
|
|
Mode(
|
|
|
|
|
className: "link-url",
|
|
|
|
|
begin: ":\\s*",
|
|
|
|
|
end: "\$",
|
|
|
|
|
excludeBegin: true
|
|
|
|
|
)
|
|
|
|
|
]
|
|
|
|
|
),
|
|
|
|
|
|
|
|
|
|
// Strikethrough text
|
|
|
|
|
Mode(
|
|
|
|
|
className: "strikethrough",
|
|
|
|
|
begin: "~~.+?~~"
|
|
|
|
|
),
|
|
|
|
|
|
|
|
|
|
// Tables
|
|
|
|
|
Mode(
|
|
|
|
|
className: "table",
|
|
|
|
|
begin: "^\\|.+?\\|",
|
|
|
|
|
end: "\$",
|
|
|
|
|
contains: [
|
|
|
|
|
Mode(
|
|
|
|
|
className: "table-header",
|
|
|
|
|
begin: "^\\|",
|
|
|
|
|
end: "\\|",
|
|
|
|
|
contains: [
|
|
|
|
|
Mode(
|
|
|
|
|
className: "table-cell",
|
|
|
|
|
begin: "[^|]+",
|
|
|
|
|
end: "\$"
|
|
|
|
|
)
|
|
|
|
|
]
|
|
|
|
|
),
|
|
|
|
|
Mode(
|
|
|
|
|
className: "table-row",
|
|
|
|
|
begin: "^\\|",
|
|
|
|
|
end: "\\|",
|
|
|
|
|
contains: [
|
|
|
|
|
Mode(
|
|
|
|
|
className: "table-cell",
|
|
|
|
|
begin: "[^|]+",
|
|
|
|
|
end: "\$"
|
|
|
|
|
)
|
|
|
|
|
]
|
|
|
|
|
)
|
|
|
|
|
]
|
|
|
|
|
),
|
|
|
|
|
|
|
|
|
|
// Task lists
|
|
|
|
|
Mode(
|
|
|
|
|
className: "task-list",
|
|
|
|
|
begin: "^\\s*-\\s*\\[\\s*[xX ]?\\s*\\]\\s+"
|
|
|
|
|
),
|
|
|
|
|
|
2025-02-21 17:46:41 +02:00
|
|
|
Mode(
|
devbox setup, dep upgrades, lint fixes, Android build fixes
- Add devbox.json pinning Flutter 3.35.7, Android SDK (Nix flake),
openjdk17, just, openssl
- Add android/nix-android-sdk/ Nix flake + flake.lock + Android Studio
config script
- Add justfile with build/get/upgrade/icons/analyze/rebuild recipes
- flutter pub upgrade --major-versions: file_picker ^11, google_fonts ^8,
permission_handler ^12, share_plus ^12, flutter_lints ^6 (+71 transitive)
- Fix file_picker v11 API: FilePicker.platform → FilePicker.getDirectoryPath()
- Fix all 37 analyzer issues: deprecated APIs (window, WillPopScope, Share,
SvgPicture color), async BuildContext guards, key constructors, private
createState() return types, unused locals, print → debugPrint, etc.
- Hook _handleCommand into onSubmitted for : prefix commands
- Android: Gradle 8.3→8.11.1, AGP 8.2.2→8.9.1, KGP 1.8.22→2.2.20,
compileSdk/targetSdk 34→36, namespace auto-derivation for library modules,
kotlin.compiler.execution.strategy=in-process
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 17:08:29 +03:00
|
|
|
className: "link-reference",
|
|
|
|
|
begin: "\\[",
|
|
|
|
|
end: "\\]",
|
|
|
|
|
excludeBegin: true,
|
|
|
|
|
excludeEnd: true
|
|
|
|
|
),
|
2025-02-21 17:46:41 +02:00
|
|
|
|
|
|
|
|
// Custom Tag Highlighting
|
2025-02-21 22:58:10 +02:00
|
|
|
Mode(
|
|
|
|
|
className: "tag-hash",
|
|
|
|
|
begin: "(?<=\\s|^)#[a-zA-Z0-9_]+",
|
|
|
|
|
relevance: 10), // Magenta
|
|
|
|
|
Mode(
|
|
|
|
|
className: "tag-plus",
|
|
|
|
|
begin: "(?<=\\s|^)\\+[a-zA-Z0-9_]+",
|
|
|
|
|
relevance: 10), // Cyan
|
|
|
|
|
Mode(
|
|
|
|
|
className: "tag-at",
|
|
|
|
|
begin: "(?<=\\s|^)@[a-zA-Z0-9_]+",
|
|
|
|
|
relevance: 10), // Yellow
|
2025-02-22 20:59:42 +02:00
|
|
|
Mode(
|
devbox setup, dep upgrades, lint fixes, Android build fixes
- Add devbox.json pinning Flutter 3.35.7, Android SDK (Nix flake),
openjdk17, just, openssl
- Add android/nix-android-sdk/ Nix flake + flake.lock + Android Studio
config script
- Add justfile with build/get/upgrade/icons/analyze/rebuild recipes
- flutter pub upgrade --major-versions: file_picker ^11, google_fonts ^8,
permission_handler ^12, share_plus ^12, flutter_lints ^6 (+71 transitive)
- Fix file_picker v11 API: FilePicker.platform → FilePicker.getDirectoryPath()
- Fix all 37 analyzer issues: deprecated APIs (window, WillPopScope, Share,
SvgPicture color), async BuildContext guards, key constructors, private
createState() return types, unused locals, print → debugPrint, etc.
- Hook _handleCommand into onSubmitted for : prefix commands
- Android: Gradle 8.3→8.11.1, AGP 8.2.2→8.9.1, KGP 1.8.22→2.2.20,
compileSdk/targetSdk 34→36, namespace auto-derivation for library modules,
kotlin.compiler.execution.strategy=in-process
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 17:08:29 +03:00
|
|
|
className: "command",
|
2025-02-22 20:59:42 +02:00
|
|
|
begin: "(?<=\\s|^):[a-zA-Z0-9_]+",
|
|
|
|
|
relevance: 10),
|
|
|
|
|
Mode(
|
devbox setup, dep upgrades, lint fixes, Android build fixes
- Add devbox.json pinning Flutter 3.35.7, Android SDK (Nix flake),
openjdk17, just, openssl
- Add android/nix-android-sdk/ Nix flake + flake.lock + Android Studio
config script
- Add justfile with build/get/upgrade/icons/analyze/rebuild recipes
- flutter pub upgrade --major-versions: file_picker ^11, google_fonts ^8,
permission_handler ^12, share_plus ^12, flutter_lints ^6 (+71 transitive)
- Fix file_picker v11 API: FilePicker.platform → FilePicker.getDirectoryPath()
- Fix all 37 analyzer issues: deprecated APIs (window, WillPopScope, Share,
SvgPicture color), async BuildContext guards, key constructors, private
createState() return types, unused locals, print → debugPrint, etc.
- Hook _handleCommand into onSubmitted for : prefix commands
- Android: Gradle 8.3→8.11.1, AGP 8.2.2→8.9.1, KGP 1.8.22→2.2.20,
compileSdk/targetSdk 34→36, namespace auto-derivation for library modules,
kotlin.compiler.execution.strategy=in-process
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 17:08:29 +03:00
|
|
|
className: "link-url",
|
|
|
|
|
begin: "(?<=\\s|^)/[a-zA-Z0-9_/]+",
|
2025-02-22 20:59:42 +02:00
|
|
|
relevance: 10), // Yellow
|
2025-02-21 22:58:10 +02:00
|
|
|
]);
|