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>
This commit is contained in:
parent
9dbd638fa8
commit
fc6c69db24
19 changed files with 1287 additions and 383 deletions
273
lib/themes/markdown.dart
Normal file → Executable file
273
lib/themes/markdown.dart
Normal file → Executable file
|
|
@ -1,61 +1,218 @@
|
|||
import 'package:highlight/highlight.dart';
|
||||
|
||||
final markdown = Mode(refs: {}, aliases: [
|
||||
"md",
|
||||
"mkdown",
|
||||
"mkd"
|
||||
], contains: [
|
||||
Mode(className: "section", variants: [
|
||||
Mode(begin: "^#\\s{1,6}", end: "\$"),
|
||||
Mode(begin: "^.+?\\n[=-]{2,}\$")
|
||||
]),
|
||||
Mode(begin: "<", end: ">", subLanguage: ["xml"], relevance: 0),
|
||||
Mode(className: "bullet", begin: "^\\s*([*+-]|(\\d+\\.))\\s+"),
|
||||
Mode(className: "strong", begin: "[*_]{2}.+?[*_]{2}"),
|
||||
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+"
|
||||
),
|
||||
|
||||
Mode(
|
||||
className: "emphasis",
|
||||
variants: [Mode(begin: "\\*.+?\\*"), Mode(begin: "_.+?_", relevance: 0)]),
|
||||
Mode(className: "quote", begin: "^>\\s+", end: "\$"),
|
||||
Mode(className: "code", variants: [
|
||||
Mode(begin: "^```\\w*\\s*\$", end: "^```[ ]*\$"),
|
||||
Mode(begin: "`.+?`"),
|
||||
Mode(begin: "^( {4}|\\t)", end: "\$", relevance: 0)
|
||||
]),
|
||||
Mode(begin: "^[-\\*]{3,}", end: "\$"),
|
||||
Mode(
|
||||
begin: "\\[.+?\\][\\(\\[].*?[\\)\\]]",
|
||||
returnBegin: true,
|
||||
contains: [
|
||||
Mode(
|
||||
className: "string",
|
||||
begin: "\\[",
|
||||
end: "\\]",
|
||||
excludeBegin: true,
|
||||
returnEnd: true,
|
||||
relevance: 0),
|
||||
Mode(
|
||||
className: "link",
|
||||
begin: "\\]\\(",
|
||||
end: "\\)",
|
||||
excludeBegin: true,
|
||||
excludeEnd: true),
|
||||
Mode(
|
||||
className: "symbol",
|
||||
begin: "\\]\\[",
|
||||
end: "\\]",
|
||||
excludeBegin: true,
|
||||
excludeEnd: true)
|
||||
],
|
||||
relevance: 10),
|
||||
Mode(begin: "^\\[[^\\n]+\\]:", returnBegin: true, contains: [
|
||||
Mode(
|
||||
className: "symbol",
|
||||
begin: "\\[",
|
||||
end: "\\]",
|
||||
excludeBegin: true,
|
||||
excludeEnd: true),
|
||||
Mode(className: "link", begin: ":\\s*", end: "\$", excludeBegin: true)
|
||||
]),
|
||||
className: "link-reference",
|
||||
begin: "\\[",
|
||||
end: "\\]",
|
||||
excludeBegin: true,
|
||||
excludeEnd: true
|
||||
),
|
||||
|
||||
// Custom Tag Highlighting
|
||||
Mode(
|
||||
|
|
@ -71,11 +228,11 @@ final markdown = Mode(refs: {}, aliases: [
|
|||
begin: "(?<=\\s|^)@[a-zA-Z0-9_]+",
|
||||
relevance: 10), // Yellow
|
||||
Mode(
|
||||
className: "keyword",
|
||||
className: "command",
|
||||
begin: "(?<=\\s|^):[a-zA-Z0-9_]+",
|
||||
relevance: 10),
|
||||
Mode(
|
||||
className: "variable",
|
||||
begin: "(?<=\\s|^)\/[a-zA-Z0-9_\/]+",
|
||||
className: "link-url",
|
||||
begin: "(?<=\\s|^)/[a-zA-Z0-9_/]+",
|
||||
relevance: 10), // Yellow
|
||||
]);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue