✨ Syntax highlighting in markdown
💄 Optimize content rendering
			
			
This commit is contained in:
		
							
								
								
									
										531
									
								
								assets/highlighting/dart.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										531
									
								
								assets/highlighting/dart.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,531 @@ | ||||
| { | ||||
|   "name": "Dart", | ||||
|   "version": "1.2.3", | ||||
|   "fileTypes": ["dart"], | ||||
|   "scopeName": "source.dart", | ||||
|  | ||||
|   "foldingStartMarker": "\\{\\s*$", | ||||
|   "foldingStopMarker": "^\\s*\\}", | ||||
|  | ||||
|   "patterns": [ | ||||
|     { | ||||
|       "name": "meta.preprocessor.script.dart", | ||||
|       "match": "^(#!.*)$" | ||||
|     }, | ||||
|     { | ||||
|       "name": "meta.declaration.dart", | ||||
|       "begin": "^\\w*\\b(library|import|part of|part|export)\\b", | ||||
|       "beginCaptures": { | ||||
|         "0": { | ||||
|           "name": "keyword.other.import.dart" | ||||
|         } | ||||
|       }, | ||||
|       "end": ";", | ||||
|       "endCaptures": { | ||||
|         "0": { | ||||
|           "name": "punctuation.terminator.dart" | ||||
|         } | ||||
|       }, | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "include": "#strings" | ||||
|         }, | ||||
|         { | ||||
|           "include": "#comments" | ||||
|         }, | ||||
|         { | ||||
|           "name": "keyword.other.import.dart", | ||||
|           "match": "\\b(as|show|hide)\\b" | ||||
|         }, | ||||
|         { | ||||
|           "name": "keyword.control.dart", | ||||
|           "match": "\\b(if)\\b" | ||||
|         } | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "include": "#comments" | ||||
|     }, | ||||
|     { | ||||
|       "include": "#punctuation" | ||||
|     }, | ||||
|     { | ||||
|       "include": "#annotations" | ||||
|     }, | ||||
|     { | ||||
|       "include": "#keywords" | ||||
|     }, | ||||
|     { | ||||
|       "include": "#constants-and-special-vars" | ||||
|     }, | ||||
|     { | ||||
|       "include": "#operators" | ||||
|     }, | ||||
|     { | ||||
|       "include": "#strings" | ||||
|     } | ||||
|   ], | ||||
|  | ||||
|   "repository": { | ||||
|     "dartdoc": { | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "match": "(\\[.*?\\])", | ||||
|           "captures": { | ||||
|             "0": { | ||||
|               "name": "variable.name.source.dart" | ||||
|             } | ||||
|           } | ||||
|         }, | ||||
|         { | ||||
|           "match": "^ {4,}(?![ \\*]).*", | ||||
|           "captures": { | ||||
|             "0": { | ||||
|               "name": "variable.name.source.dart" | ||||
|             } | ||||
|           } | ||||
|         }, | ||||
|         { | ||||
|           "contentName": "variable.other.source.dart", | ||||
|           "begin": "```.*?$", | ||||
|           "end": "```" | ||||
|         }, | ||||
|         { | ||||
|           "match": "(`.*?`)", | ||||
|           "captures": { | ||||
|             "0": { | ||||
|               "name": "variable.other.source.dart" | ||||
|             } | ||||
|           } | ||||
|         }, | ||||
|         { | ||||
|           "match": "(`.*?`)", | ||||
|           "captures": { | ||||
|             "0": { | ||||
|               "name": "variable.other.source.dart" | ||||
|             } | ||||
|           } | ||||
|         }, | ||||
|         { | ||||
|           "match": "(\\* ((    ).*))$", | ||||
|           "captures": { | ||||
|             "2": { | ||||
|               "name": "variable.other.source.dart" | ||||
|             } | ||||
|           } | ||||
|         } | ||||
|       ] | ||||
|     }, | ||||
|     "comments": { | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "name": "comment.block.empty.dart", | ||||
|           "match": "/\\*\\*/", | ||||
|           "captures": { | ||||
|             "0": { | ||||
|               "name": "punctuation.definition.comment.dart" | ||||
|             } | ||||
|           } | ||||
|         }, | ||||
|         { | ||||
|           "include": "#comments-doc-oldschool" | ||||
|         }, | ||||
|         { | ||||
|           "include": "#comments-doc" | ||||
|         }, | ||||
|         { | ||||
|           "include": "#comments-inline" | ||||
|         } | ||||
|       ] | ||||
|     }, | ||||
|     "comments-doc-oldschool": { | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "name": "comment.block.documentation.dart", | ||||
|           "begin": "/\\*\\*", | ||||
|           "end": "\\*/", | ||||
|           "patterns": [ | ||||
|             { | ||||
|               "include": "#comments-doc-oldschool" | ||||
|             }, | ||||
|             { | ||||
|               "include": "#comments-block" | ||||
|             }, | ||||
|             { | ||||
|               "include": "#dartdoc" | ||||
|             } | ||||
|           ] | ||||
|         } | ||||
|       ] | ||||
|     }, | ||||
|     "comments-doc": { | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "name": "comment.block.documentation.dart", | ||||
|           "begin": "///", | ||||
|           "while": "^\\s*///", | ||||
|           "patterns": [ | ||||
|             { | ||||
|               "include": "#dartdoc" | ||||
|             } | ||||
|           ] | ||||
|         } | ||||
|       ] | ||||
|     }, | ||||
|     "comments-inline": { | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "include": "#comments-block" | ||||
|         }, | ||||
|         { | ||||
|           "match": "((//).*)$", | ||||
|           "captures": { | ||||
|             "1": { | ||||
|               "name": "comment.line.double-slash.dart" | ||||
|             } | ||||
|           } | ||||
|         } | ||||
|       ] | ||||
|     }, | ||||
|     "comments-block": { | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "name": "comment.block.dart", | ||||
|           "begin": "/\\*", | ||||
|           "end": "\\*/", | ||||
|           "patterns": [ | ||||
|             { | ||||
|               "include": "#comments-block" | ||||
|             } | ||||
|           ] | ||||
|         } | ||||
|       ] | ||||
|     }, | ||||
|     "annotations": { | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "name": "storage.type.annotation.dart", | ||||
|           "match": "@[a-zA-Z]+" | ||||
|         } | ||||
|       ] | ||||
|     }, | ||||
|     "constants-and-special-vars": { | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "name": "constant.language.dart", | ||||
|           "match": "(?<!\\$)\\b(true|false|null)\\b(?!\\$)" | ||||
|         }, | ||||
|         { | ||||
|           "name": "variable.language.dart", | ||||
|           "match": "(?<!\\$)\\b(this|super)\\b(?!\\$)" | ||||
|         }, | ||||
|         { | ||||
|           "name": "constant.numeric.dart", | ||||
|           "match": "(?<!\\$)\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b(?!\\$)" | ||||
|         }, | ||||
|         { | ||||
|           "include": "#class-identifier" | ||||
|         }, | ||||
|         { | ||||
|           "include": "#function-identifier" | ||||
|         } | ||||
|       ] | ||||
|     }, | ||||
|     "class-identifier": { | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "match": "(?<!\\$)\\b(bool|num|int|double|dynamic)\\b(?!\\$)", | ||||
|           "name": "support.class.dart" | ||||
|         }, | ||||
|         { | ||||
|           "match": "(?<!\\$)\\bvoid\\b(?!\\$)", | ||||
|           "name": "storage.type.primitive.dart" | ||||
|         }, | ||||
|         { | ||||
|           "begin": "(?<![a-zA-Z0-9_$])([_$]*[A-Z][a-zA-Z0-9_$]*)\\b", | ||||
|           "end": "(?!<)", | ||||
|           "beginCaptures": { | ||||
|             "1": { | ||||
|               "name": "support.class.dart" | ||||
|             } | ||||
|           }, | ||||
|           "patterns": [ | ||||
|             { | ||||
|               "include": "#type-args" | ||||
|             } | ||||
|           ] | ||||
|         } | ||||
|       ] | ||||
|     }, | ||||
|     "function-identifier": { | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "match": "([_$]*[a-z][a-zA-Z0-9_$]*)(<(?:[a-zA-Z0-9_$<>?]|,\\s*|\\s+extends\\s+)+>)?[!?]?\\(", | ||||
|           "captures": { | ||||
|             "1": { | ||||
|               "name": "entity.name.function.dart" | ||||
|             }, | ||||
|             "2": { | ||||
|               "patterns": [ | ||||
|                 { | ||||
|                   "include": "#type-args" | ||||
|                 } | ||||
|               ] | ||||
|             } | ||||
|           } | ||||
|         } | ||||
|       ] | ||||
|     }, | ||||
|     "type-args": { | ||||
|       "begin": "(<)", | ||||
|       "end": "(>)", | ||||
|       "beginCaptures": { | ||||
|         "1": { | ||||
|           "name": "other.source.dart" | ||||
|         } | ||||
|       }, | ||||
|       "endCaptures": { | ||||
|         "1": { | ||||
|           "name": "other.source.dart" | ||||
|         } | ||||
|       }, | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "include": "#class-identifier" | ||||
|         }, | ||||
|         { | ||||
|           "match": "," | ||||
|         }, | ||||
|         { | ||||
|           "name": "keyword.declaration.dart", | ||||
|           "match": "extends" | ||||
|         }, | ||||
|         { | ||||
|           "include": "#comments" | ||||
|         } | ||||
|       ] | ||||
|     }, | ||||
|     "keywords": { | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "name": "keyword.cast.dart", | ||||
|           "match": "(?<!\\$)\\bas\\b(?!\\$)" | ||||
|         }, | ||||
|         { | ||||
|           "name": "keyword.control.catch-exception.dart", | ||||
|           "match": "(?<!\\$)\\b(try|on|catch|finally|throw|rethrow)\\b(?!\\$)" | ||||
|         }, | ||||
|         { | ||||
|           "name": "keyword.control.dart", | ||||
|           "match": "(?<!\\$)\\b(break|case|continue|default|do|else|for|if|in|return|switch|while|when)\\b(?!\\$)" | ||||
|         }, | ||||
|         { | ||||
|           "name": "keyword.control.dart", | ||||
|           "match": "(?<!\\$)\\b(sync(\\*)?|async(\\*)?|await|yield(\\*)?)\\b(?!\\$)" | ||||
|         }, | ||||
|         { | ||||
|           "name": "keyword.control.dart", | ||||
|           "match": "(?<!\\$)\\bassert\\b(?!\\$)" | ||||
|         }, | ||||
|         { | ||||
|           "name": "keyword.control.new.dart", | ||||
|           "match": "(?<!\\$)\\b(new)\\b(?!\\$)" | ||||
|         }, | ||||
|         { | ||||
|           "name": "keyword.declaration.dart", | ||||
|           "match": "(?<!\\$)\\b(abstract|sealed|base|interface|class|enum|extends|extension type|extension|external|factory|implements|get(?!\\()|mixin|native|operator|set(?!\\()|typedef|with|covariant)\\b(?!\\$)" | ||||
|         }, | ||||
|         { | ||||
|           "name": "storage.modifier.dart", | ||||
|           "match": "(?<!\\$)\\b(static|final|const|required|late)\\b(?!\\$)" | ||||
|         }, | ||||
|         { | ||||
|           "name": "storage.type.primitive.dart", | ||||
|           "match": "(?<!\\$)\\b(?:void|var)\\b(?!\\$)" | ||||
|         } | ||||
|       ] | ||||
|     }, | ||||
|     "operators": { | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "name": "keyword.operator.dart", | ||||
|           "match": "(?<!\\$)\\b(is\\!?)\\b(?!\\$)" | ||||
|         }, | ||||
|         { | ||||
|           "name": "keyword.operator.ternary.dart", | ||||
|           "match": "\\?|:" | ||||
|         }, | ||||
|         { | ||||
|           "name": "keyword.operator.bitwise.dart", | ||||
|           "match": "(<<|>>>?|~|\\^|\\||&)" | ||||
|         }, | ||||
|         { | ||||
|           "name": "keyword.operator.assignment.bitwise.dart", | ||||
|           "match": "((&|\\^|\\||<<|>>>?)=)" | ||||
|         }, | ||||
|         { | ||||
|           "name": "keyword.operator.closure.dart", | ||||
|           "match": "(=>)" | ||||
|         }, | ||||
|         { | ||||
|           "name": "keyword.operator.comparison.dart", | ||||
|           "match": "(==|!=|<=?|>=?)" | ||||
|         }, | ||||
|         { | ||||
|           "name": "keyword.operator.assignment.arithmetic.dart", | ||||
|           "match": "(([+*/%-]|\\~)=)" | ||||
|         }, | ||||
|         { | ||||
|           "name": "keyword.operator.assignment.dart", | ||||
|           "match": "(=)" | ||||
|         }, | ||||
|         { | ||||
|           "name": "keyword.operator.increment-decrement.dart", | ||||
|           "match": "(\\-\\-|\\+\\+)" | ||||
|         }, | ||||
|         { | ||||
|           "name": "keyword.operator.arithmetic.dart", | ||||
|           "match": "(\\-|\\+|\\*|\\/|\\~\\/|%)" | ||||
|         }, | ||||
|         { | ||||
|           "name": "keyword.operator.logical.dart", | ||||
|           "match": "(!|&&|\\|\\|)" | ||||
|         } | ||||
|       ] | ||||
|     }, | ||||
|     "string-interp": { | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "match": "\\$([a-zA-Z0-9_]+)", | ||||
|           "captures": { | ||||
|             "1": { | ||||
|               "name": "variable.parameter.dart" | ||||
|             } | ||||
|           } | ||||
|         }, | ||||
|         { | ||||
|           "name": "string.interpolated.expression.dart", | ||||
|           "begin": "\\$\\{", | ||||
|           "end": "\\}", | ||||
|           "patterns": [ | ||||
|             { | ||||
|               "include": "#constants-and-special-vars", | ||||
|               "name": "variable.parameter.dart" | ||||
|             }, | ||||
|             { | ||||
|               "include": "#strings" | ||||
|             }, | ||||
|             { | ||||
|               "name": "variable.parameter.dart", | ||||
|               "match": "[a-zA-Z0-9_]+" | ||||
|             } | ||||
|           ] | ||||
|         }, | ||||
|         { | ||||
|           "name": "constant.character.escape.dart", | ||||
|           "match": "\\\\." | ||||
|         } | ||||
|       ] | ||||
|     }, | ||||
|     "strings": { | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "name": "string.interpolated.triple.double.dart", | ||||
|           "begin": "(?<!r)\"\"\"", | ||||
|           "end": "\"\"\"(?!\")", | ||||
|           "patterns": [ | ||||
|             { | ||||
|               "include": "#string-interp" | ||||
|             } | ||||
|           ] | ||||
|         }, | ||||
|         { | ||||
|           "name": "string.interpolated.triple.single.dart", | ||||
|           "begin": "(?<!r)'''", | ||||
|           "end": "'''(?!')", | ||||
|           "patterns": [ | ||||
|             { | ||||
|               "include": "#string-interp" | ||||
|             } | ||||
|           ] | ||||
|         }, | ||||
|         { | ||||
|           "name": "string.quoted.triple.double.dart", | ||||
|           "begin": "r\"\"\"", | ||||
|           "end": "\"\"\"(?!\")" | ||||
|         }, | ||||
|         { | ||||
|           "name": "string.quoted.triple.single.dart", | ||||
|           "begin": "r'''", | ||||
|           "end": "'''(?!')" | ||||
|         }, | ||||
|         { | ||||
|           "name": "string.interpolated.double.dart", | ||||
|           "begin": "(?<!\\|r)\"", | ||||
|           "end": "\"", | ||||
|           "patterns": [ | ||||
|             { | ||||
|               "name": "invalid.string.newline", | ||||
|               "match": "\\n" | ||||
|             }, | ||||
|             { | ||||
|               "include": "#string-interp" | ||||
|             } | ||||
|           ] | ||||
|         }, | ||||
|         { | ||||
|           "name": "string.quoted.double.dart", | ||||
|           "begin": "r\"", | ||||
|           "end": "\"", | ||||
|           "patterns": [ | ||||
|             { | ||||
|               "name": "invalid.string.newline", | ||||
|               "match": "\\n" | ||||
|             } | ||||
|           ] | ||||
|         }, | ||||
|         { | ||||
|           "name": "string.interpolated.single.dart", | ||||
|           "begin": "(?<!\\|r)'", | ||||
|           "end": "'", | ||||
|           "patterns": [ | ||||
|             { | ||||
|               "name": "invalid.string.newline", | ||||
|               "match": "\\n" | ||||
|             }, | ||||
|             { | ||||
|               "include": "#string-interp" | ||||
|             } | ||||
|           ] | ||||
|         }, | ||||
|         { | ||||
|           "name": "string.quoted.single.dart", | ||||
|           "begin": "r'", | ||||
|           "end": "'", | ||||
|           "patterns": [ | ||||
|             { | ||||
|               "name": "invalid.string.newline", | ||||
|               "match": "\\n" | ||||
|             } | ||||
|           ] | ||||
|         } | ||||
|       ] | ||||
|     }, | ||||
|     "punctuation": { | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "name": "punctuation.comma.dart", | ||||
|           "match": "," | ||||
|         }, | ||||
|         { | ||||
|           "name": "punctuation.terminator.dart", | ||||
|           "match": ";" | ||||
|         }, | ||||
|         { | ||||
|           "name": "punctuation.dot.dart", | ||||
|           "match": "\\." | ||||
|         } | ||||
|       ] | ||||
|     } | ||||
|   } | ||||
| } | ||||
							
								
								
									
										212
									
								
								assets/highlighting/json.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										212
									
								
								assets/highlighting/json.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,212 @@ | ||||
| { | ||||
|   "fileTypes": ["json"], | ||||
|   "foldingStartMarker": "^\\s*[{\\[](?!.*[}\\]],?\\s*$)|[{\\[]\\s*$", | ||||
|   "foldingStopMarker": "^\\s*[}\\]]", | ||||
|   "keyEquivalent": "^~J", | ||||
|   "name": "JSON (Javascript Next)", | ||||
|   "patterns": [ | ||||
|     { | ||||
|       "include": "#value" | ||||
|     } | ||||
|   ], | ||||
|   "repository": { | ||||
|     "array": { | ||||
|       "begin": "\\[", | ||||
|       "beginCaptures": { | ||||
|         "0": { | ||||
|           "name": "punctuation.definition.array.begin.json" | ||||
|         } | ||||
|       }, | ||||
|       "end": "\\]", | ||||
|       "endCaptures": { | ||||
|         "0": { | ||||
|           "name": "punctuation.definition.array.end.json" | ||||
|         } | ||||
|       }, | ||||
|       "name": "meta.structure.array.json", | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "include": "#value" | ||||
|         }, | ||||
|         { | ||||
|           "match": ",", | ||||
|           "name": "punctuation.separator.array.json" | ||||
|         }, | ||||
|         { | ||||
|           "match": "[^\\s\\]]", | ||||
|           "name": "invalid.illegal.expected-array-separator.json" | ||||
|         } | ||||
|       ] | ||||
|     }, | ||||
|     "comments": { | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "begin": "/\\*\\*", | ||||
|           "captures": { | ||||
|             "0": { | ||||
|               "name": "punctuation.definition.comment.json" | ||||
|             } | ||||
|           }, | ||||
|           "end": "\\*/", | ||||
|           "name": "comment.block.documentation.json" | ||||
|         }, | ||||
|         { | ||||
|           "begin": "/\\*", | ||||
|           "captures": { | ||||
|             "0": { | ||||
|               "name": "punctuation.definition.comment.json" | ||||
|             } | ||||
|           }, | ||||
|           "end": "\\*/", | ||||
|           "name": "comment.block.json" | ||||
|         }, | ||||
|         { | ||||
|           "captures": { | ||||
|             "1": { | ||||
|               "name": "punctuation.definition.comment.json" | ||||
|             } | ||||
|           }, | ||||
|           "match": "(//).*$\\n?", | ||||
|           "name": "comment.line.double-slash.js" | ||||
|         } | ||||
|       ] | ||||
|     }, | ||||
|     "constant": { | ||||
|       "match": "\\b(?:true|false|null)\\b", | ||||
|       "name": "constant.language.json" | ||||
|     }, | ||||
|     "number": { | ||||
|       "match": "-?(?:0|[1-9]\\d*)\n(?:\n(?:\n\\.\\d+)?\n(?:\n[eE][+-]?\\d+)?)?", | ||||
|       "name": "constant.numeric.json" | ||||
|     }, | ||||
|     "object": { | ||||
|       "begin": "\\{", | ||||
|       "beginCaptures": { | ||||
|         "0": { | ||||
|           "name": "punctuation.definition.dictionary.begin.json" | ||||
|         } | ||||
|       }, | ||||
|       "end": "\\}", | ||||
|       "endCaptures": { | ||||
|         "0": { | ||||
|           "name": "punctuation.definition.dictionary.end.json" | ||||
|         } | ||||
|       }, | ||||
|       "name": "meta.structure.dictionary.json", | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "comment": "the JSON object key", | ||||
|           "include": "#objectkey" | ||||
|         }, | ||||
|         { | ||||
|           "include": "#comments" | ||||
|         }, | ||||
|         { | ||||
|           "begin": ":", | ||||
|           "beginCaptures": { | ||||
|             "0": { | ||||
|               "name": "punctuation.separator.dictionary.key-value.json" | ||||
|             } | ||||
|           }, | ||||
|           "end": "(,)|(?=\\})", | ||||
|           "endCaptures": { | ||||
|             "1": { | ||||
|               "name": "punctuation.separator.dictionary.pair.json" | ||||
|             } | ||||
|           }, | ||||
|           "name": "meta.structure.dictionary.value.json", | ||||
|           "patterns": [ | ||||
|             { | ||||
|               "comment": "the JSON object value", | ||||
|               "include": "#value" | ||||
|             }, | ||||
|             { | ||||
|               "match": "[^\\s,]", | ||||
|               "name": "invalid.illegal.expected-dictionary-separator.json" | ||||
|             } | ||||
|           ] | ||||
|         }, | ||||
|         { | ||||
|           "match": "[^\\s\\}]", | ||||
|           "name": "invalid.illegal.expected-dictionary-separator.json" | ||||
|         } | ||||
|       ] | ||||
|     }, | ||||
|     "string": { | ||||
|       "begin": "\"", | ||||
|       "beginCaptures": { | ||||
|         "0": { | ||||
|           "name": "punctuation.definition.string.begin.json" | ||||
|         } | ||||
|       }, | ||||
|       "end": "\"", | ||||
|       "endCaptures": { | ||||
|         "0": { | ||||
|           "name": "punctuation.definition.string.end.json" | ||||
|         } | ||||
|       }, | ||||
|       "name": "string.quoted.double.json", | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "include": "#stringcontent" | ||||
|         } | ||||
|       ] | ||||
|     }, | ||||
|     "objectkey": { | ||||
|       "begin": "\"", | ||||
|       "beginCaptures": { | ||||
|         "0": { | ||||
|           "name": "punctuation.support.type.property-name.begin.json" | ||||
|         } | ||||
|       }, | ||||
|       "end": "\"", | ||||
|       "endCaptures": { | ||||
|         "0": { | ||||
|           "name": "punctuation.support.type.property-name.end.json" | ||||
|         } | ||||
|       }, | ||||
|       "name": "support.type.property-name.json", | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "include": "#stringcontent" | ||||
|         } | ||||
|       ] | ||||
|     }, | ||||
|     "stringcontent": { | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "match": "\\\\(?:[\"\\\\/bfnrt]|u[0-9a-fA-F]{4})", | ||||
|           "name": "constant.character.escape.json" | ||||
|         }, | ||||
|         { | ||||
|           "match": "\\\\.", | ||||
|           "name": "invalid.illegal.unrecognized-string-escape.json" | ||||
|         } | ||||
|       ] | ||||
|     }, | ||||
|     "value": { | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "include": "#constant" | ||||
|         }, | ||||
|         { | ||||
|           "include": "#number" | ||||
|         }, | ||||
|         { | ||||
|           "include": "#string" | ||||
|         }, | ||||
|         { | ||||
|           "include": "#array" | ||||
|         }, | ||||
|         { | ||||
|           "include": "#object" | ||||
|         }, | ||||
|         { | ||||
|           "include": "#comments" | ||||
|         } | ||||
|       ] | ||||
|     } | ||||
|   }, | ||||
|   "scopeName": "source.json", | ||||
|   "uuid": "8f97457b-516e-48ce-83c7-08ae12fb327a" | ||||
| } | ||||
							
								
								
									
										98
									
								
								assets/highlighting/python.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								assets/highlighting/python.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,98 @@ | ||||
| { | ||||
|   "name": "Python", | ||||
|   "version": "1.0.0", | ||||
|   "fileTypes": ["py"], | ||||
|   "scopeName": "source.python", | ||||
|   "foldingStartMarker": "\\b(?:def|class)\\s*[^:]*:\\s*$", | ||||
|   "foldingStopMarker": "^\\s*\\}", | ||||
|   "patterns": [ | ||||
|     { "include": "#comments" }, | ||||
|     { "include": "#keywords" }, | ||||
|     { "include": "#constants-and-special-vars" }, | ||||
|     { "include": "#operators" }, | ||||
|     { "include": "#strings" } | ||||
|   ], | ||||
|   "repository": { | ||||
|     "comments": { | ||||
|       "patterns": [ | ||||
|         { "name": "comment.line.hash.python", "match": "#.*$" }, | ||||
|         { "name": "comment.block.python", "begin": "'''", "end": "'''" }, | ||||
|         { "name": "comment.block.python", "begin": "\"\"\"", "end": "\"\"\"" } | ||||
|       ] | ||||
|     }, | ||||
|     "keywords": { | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "name": "keyword.control.python", | ||||
|           "match": "\\b(?:if|else|while|for|in|break|continue|return)\\b" | ||||
|         }, | ||||
|         { | ||||
|           "name": "keyword.operator.logical.python", | ||||
|           "match": "\\b(?:and|or|not)\\b" | ||||
|         }, | ||||
|         { "name": "keyword.operator.assignment.python", "match": "=" }, | ||||
|         { "name": "storage.modifier.python", "match": "\\b(?:def|class)\\b" } | ||||
|       ] | ||||
|     }, | ||||
|     "constants-and-special-vars": { | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "name": "constant.language.python", | ||||
|           "match": "\\b(?:True|False|None)\\b" | ||||
|         }, | ||||
|         { "name": "variable.language.python", "match": "\\b(?:self)\\b" }, | ||||
|         { | ||||
|           "name": "constant.numeric.python", | ||||
|           "match": "\\b(?:\\d+\\.?\\d*|\\.\\d+)\\b" | ||||
|         } | ||||
|       ] | ||||
|     }, | ||||
|     "operators": { | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "name": "keyword.operator.arithmetic.python", | ||||
|           "match": "\\b(?:\\+|-|\\*|/|%|//)\\b" | ||||
|         }, | ||||
|         { | ||||
|           "name": "keyword.operator.comparison.python", | ||||
|           "match": "\\b(?:==|!=|<|<=|>|>=)\\b" | ||||
|         }, | ||||
|         { | ||||
|           "name": "keyword.operator.logical.python", | ||||
|           "match": "\\b(?:and|or|not)\\b" | ||||
|         } | ||||
|       ] | ||||
|     }, | ||||
|     "strings": { | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "name": "string.quoted.triple.double.python", | ||||
|           "begin": "\"\"\"", | ||||
|           "end": "\"\"\"" | ||||
|         }, | ||||
|         { | ||||
|           "name": "string.quoted.triple.single.python", | ||||
|           "begin": "'''", | ||||
|           "end": "'''" | ||||
|         }, | ||||
|         { | ||||
|           "name": "string.quoted.double.python", | ||||
|           "begin": "\"", | ||||
|           "end": "\"", | ||||
|           "patterns": [{ "include": "#string-escape" }] | ||||
|         }, | ||||
|         { | ||||
|           "name": "string.quoted.single.python", | ||||
|           "begin": "'", | ||||
|           "end": "'", | ||||
|           "patterns": [{ "include": "#string-escape" }] | ||||
|         } | ||||
|       ] | ||||
|     }, | ||||
|     "string-escape": { | ||||
|       "patterns": [ | ||||
|         { "name": "constant.character.escape.python", "match": "\\\\[\"']" } | ||||
|       ] | ||||
|     } | ||||
|   } | ||||
| } | ||||
							
								
								
									
										145
									
								
								assets/highlighting/sql.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										145
									
								
								assets/highlighting/sql.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,145 @@ | ||||
| { | ||||
|   "fileTypes": ["sql", "ddl", "dml"], | ||||
|   "foldingStartMarker": "(?i)^\\s*(begin|if|loop)\\b", | ||||
|   "foldingStopMarker": "(?i)^\\s*(end)\\b", | ||||
|   "keyEquivalent": "^~S", | ||||
|   "name": "PL/pgSQL (Postgres)", | ||||
|   "patterns": [ | ||||
|     { | ||||
|       "begin": "/\\*", | ||||
|       "end": "\\*/", | ||||
|       "name": "comment.block.postgres" | ||||
|     }, | ||||
|     { | ||||
|       "match": "--.*$", | ||||
|       "name": "comment.line.double-dash.postgres" | ||||
|     }, | ||||
|     { | ||||
|       "captures": { | ||||
|         "1": { | ||||
|           "name": "keyword.other.postgres" | ||||
|         }, | ||||
|         "2": { | ||||
|           "name": "keyword.other.postgres" | ||||
|         } | ||||
|       }, | ||||
|       "match": "(?i)^\\s*(create)(\\s+or\\s+replace)?\\s+", | ||||
|       "name": "meta.create.postgres" | ||||
|     }, | ||||
|     { | ||||
|       "captures": { | ||||
|         "1": { | ||||
|           "name": "keyword.other.postgres" | ||||
|         }, | ||||
|         "2": { | ||||
|           "name": "keyword.other.postgres" | ||||
|         }, | ||||
|         "3": { | ||||
|           "name": "entity.name.type.postgres" | ||||
|         } | ||||
|       }, | ||||
|       "match": "(?i)\\b(package)(\\s+body)?\\s+(\\S+)", | ||||
|       "name": "meta.package.postgres" | ||||
|     }, | ||||
|     { | ||||
|       "captures": { | ||||
|         "1": { | ||||
|           "name": "keyword.other.postgres" | ||||
|         }, | ||||
|         "2": { | ||||
|           "name": "entity.name.type.postgres" | ||||
|         } | ||||
|       }, | ||||
|       "match": "(?i)\\b(type)\\s+\"([^\"]+)\"", | ||||
|       "name": "meta.type.postgres" | ||||
|     }, | ||||
|     { | ||||
|       "captures": { | ||||
|         "1": { | ||||
|           "name": "keyword.other.postgres" | ||||
|         }, | ||||
|         "2": { | ||||
|           "name": "entity.name.function.postgres" | ||||
|         } | ||||
|       }, | ||||
|       "match": "(?i)\\s*(function|procedure)\\s+([-a-z0-9_.]+)", | ||||
|       "name": "meta.procedure.postgres" | ||||
|     }, | ||||
|     { | ||||
|       "match": "[!<>:]?=|<>|<|>|\\+|(?<!\\.)\\*|-|(?<!^)/|@@|\\|\\|", | ||||
|       "name": "keyword.operator.postgres" | ||||
|     }, | ||||
|     { | ||||
|       "match": "(?i)\\b(true|false|null|found)\\b", | ||||
|       "name": "constant.language.postgres" | ||||
|     }, | ||||
|     { | ||||
|       "match": "\\b\\d+(\\.\\d+)?\\b", | ||||
|       "name": "constant.numeric.postgres" | ||||
|     }, | ||||
|     { | ||||
|       "match": "(?i)\\b(if|elsif|else|end\\s+if|loop|end\\s+loop|for|foreach|array|case|end\\s+case|continue|return|goto|alias)\\b", | ||||
|       "name": "keyword.control.postgres" | ||||
|     }, | ||||
|     { | ||||
|       "match": "(?i)\\b(or|and|not|like)\\b", | ||||
|       "name": "keyword.operator.postgres" | ||||
|     }, | ||||
|     { | ||||
|       "match": "(?i)\\b(sysdate|%(isopen|found|notfound|rowcount)|commit|rollback|sqlerrm|substr|cast|decode|length|lower|upper|coalesce)\\b", | ||||
|       "name": "support.function.postgres" | ||||
|     }, | ||||
|     { | ||||
|       "match": "(?i)\\b(avg|count|sum|max|min|nvl|trim|to_date|to_char|lpad|ltrim|rpad|rtrim|trunc|to_number|regexp_split_to_array|regexp_replace)\\b", | ||||
|       "name": "support.function.builtin.postgres" | ||||
|     }, | ||||
|     { | ||||
|       "match": "(?i)\\b(sql|sqlcode)\\b", | ||||
|       "name": "variable.language.postgres" | ||||
|     }, | ||||
|     { | ||||
|       "match": "(?i)\\b(p(i|o|io)_[-a-z0-9_]+)\\b", | ||||
|       "name": "variable.parameter.postgres" | ||||
|     }, | ||||
|     { | ||||
|       "match": "(?i)\\b(l_[-a-z0-9_]+)\\b", | ||||
|       "name": "variable.other.postgres" | ||||
|     }, | ||||
|     { | ||||
|       "match": "(?i)\\b(immutable|volatile|stable|serial|primary|key|references|comment|column|schema|authorization|get|diagnostics|returning|drop|all|raise|notice|warning|exception|external|security|definer|language|grant|execute|on|to|function|procedure|returns|end|then|deterministic|exception|when|others|subtype|constant|range|binary_integer|declare|begin|in|out|is|as|exit|open|fetch|into|close|type|rowtype|default|\\.(extend|count|first|last|next|nextval|currval)|cost|alter|owner)\\b", | ||||
|       "name": "keyword.other.postgres" | ||||
|     }, | ||||
|     { | ||||
|       "match": "(?i)\\b(select|perform|from|where|order\\s+by|group\\s+by|asc|desc|update|set|insert|into|values|delete|from|distinct|union|having|limit|table|of|prepare|(inner|left|outer) join)\\b", | ||||
|       "name": "keyword.other.sql.postgres" | ||||
|     }, | ||||
|     { | ||||
|       "match": "[$][0-9]+", | ||||
|       "name": "storage.type.postgres" | ||||
|     }, | ||||
|     { | ||||
|       "match": "(?i)\\b(dbms_lock|dbms_output)\\b", | ||||
|       "name": "support.class.postgres" | ||||
|     }, | ||||
|     { | ||||
|       "match": "(?i)\\b(put_line)\\b", | ||||
|       "name": "support.function.postgres" | ||||
|     }, | ||||
|     { | ||||
|       "begin": "'", | ||||
|       "end": "'", | ||||
|       "name": "string.quoted.single.postgres" | ||||
|     }, | ||||
|     { | ||||
|       "begin": "\"", | ||||
|       "end": "\"", | ||||
|       "name": "string.quoted.double.postgres" | ||||
|     }, | ||||
|     { | ||||
|       "match": "(?i)\\b(number|integer|bigint|varchar2|varchar|boolean|date|setof|record|query|numeric|void|character varying|text|([-a-z0-9_.]+%(row)?type))\\b", | ||||
|       "name": "storage.type.postgres" | ||||
|     } | ||||
|   ], | ||||
|   "scopeName": "source.plpgsql.postgres", | ||||
|   "uuid": "28DCE4DD-F5E1-4ED3-8847-64DA6B1F9163" | ||||
| } | ||||
							
								
								
									
										66
									
								
								assets/highlighting/yaml.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								assets/highlighting/yaml.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,66 @@ | ||||
| { | ||||
|   "name": "YAML", | ||||
|   "fileTypes": ["yaml", "yml"], | ||||
|   "scopeName": "source.yaml", | ||||
|   "patterns": [ | ||||
|     { | ||||
|       "name": "comment.line.number-sign.yaml", | ||||
|       "match": "#.*", | ||||
|       "captures": { | ||||
|         "0": { | ||||
|           "name": "punctuation.definition.comment.yaml" | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       "name": "entity.name.tag.yaml", | ||||
|       "match": "^\\s*\\w+", | ||||
|       "captures": { | ||||
|         "0": { | ||||
|           "name": "punctuation.definition.tag.yaml" | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       "name": "punctuation.separator.key-value.yaml", | ||||
|       "match": ":", | ||||
|       "captures": { | ||||
|         "0": { | ||||
|           "name": "punctuation.separator.key-value.yaml" | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       "name": "string.quoted.double.yaml", | ||||
|       "begin": "\"", | ||||
|       "end": "\"", | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "name": "constant.character.escape.yaml", | ||||
|           "match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{6}|.)" | ||||
|         } | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "name": "string.quoted.single.yaml", | ||||
|       "begin": "'", | ||||
|       "end": "'", | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "name": "constant.character.escape.yaml", | ||||
|           "match": "''" | ||||
|         } | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "repository": { | ||||
|     "scalar-plain": { | ||||
|       "patterns": [ | ||||
|         { | ||||
|           "match": "\\b(\\w+)\\b", | ||||
|           "name": "scalar.plain.yaml" | ||||
|         } | ||||
|       ] | ||||
|     } | ||||
|   } | ||||
| } | ||||
| @@ -89,13 +89,17 @@ class _DashboardScreenState extends State<DashboardScreen> { | ||||
|     try { | ||||
|       _signRecord = await _dailySign.getToday(); | ||||
|       _dailySign.listLastRecord(14).then((value) { | ||||
|         setState(() => _signRecordHistory = value); | ||||
|         if (mounted) { | ||||
|           setState(() => _signRecordHistory = value); | ||||
|         } | ||||
|       }); | ||||
|     } catch (e) { | ||||
|       context.showErrorDialog(e); | ||||
|     } | ||||
|  | ||||
|     setState(() => _signingDaily = false); | ||||
|     if (mounted) { | ||||
|       setState(() => _signingDaily = false); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   Future<void> _signDaily() async { | ||||
|   | ||||
| @@ -1,12 +1,14 @@ | ||||
| import 'package:flutter/material.dart'; | ||||
| import 'package:flutter_markdown_selectionarea/flutter_markdown.dart'; | ||||
| import 'package:flutter_markdown/flutter_markdown.dart'; | ||||
| import 'package:gap/gap.dart'; | ||||
| import 'package:get/get.dart'; | ||||
| import 'package:google_fonts/google_fonts.dart'; | ||||
| import 'package:markdown/markdown.dart' as markdown; | ||||
| import 'package:markdown/markdown.dart'; | ||||
| import 'package:path/path.dart'; | ||||
| import 'package:solian/providers/stickers.dart'; | ||||
| import 'package:solian/widgets/attachments/attachment_list.dart'; | ||||
| import 'package:solian/widgets/auto_cache_image.dart'; | ||||
| import 'package:syntax_highlight/syntax_highlight.dart'; | ||||
| import 'package:url_launcher/url_launcher_string.dart'; | ||||
|  | ||||
| import 'account/account_profile_popup.dart'; | ||||
| @@ -39,15 +41,6 @@ class MarkdownTextContent extends StatelessWidget { | ||||
|       // Getting paragraph | ||||
|       var paragraph = paragraphs[idx]; | ||||
|  | ||||
|       // Auto adding new-lines | ||||
|       if (isAutoWarp) { | ||||
|         paragraph = paragraph.replaceAll('\n', '\\\n'); | ||||
|       } | ||||
|       const charactersToTrim = '\\\n\t\r '; | ||||
|       final trimPattern = | ||||
|           RegExp('^[$charactersToTrim]+|[$charactersToTrim]+\$'); | ||||
|       paragraph = paragraph.trim().replaceAll(trimPattern, ''); | ||||
|  | ||||
|       // Matching stickers | ||||
|       final stickerMatch = stickerRegex.allMatches(paragraph); | ||||
|       final isOnlySticker = | ||||
| @@ -62,31 +55,48 @@ class MarkdownTextContent extends StatelessWidget { | ||||
|           styleSheet: MarkdownStyleSheet.fromTheme( | ||||
|             Theme.of(context), | ||||
|           ).copyWith( | ||||
|             textScaleFactor: isLargeText ? 1.1 : 1, | ||||
|             blockquote: TextStyle( | ||||
|               color: Theme.of(context).colorScheme.onSurfaceVariant, | ||||
|             ), | ||||
|             blockquoteDecoration: BoxDecoration( | ||||
|               color: Theme.of(context).colorScheme.surfaceContainerHigh, | ||||
|               borderRadius: const BorderRadius.all(Radius.circular(4)), | ||||
|             ), | ||||
|             horizontalRuleDecoration: BoxDecoration( | ||||
|               border: Border( | ||||
|                 top: BorderSide( | ||||
|                   width: 1.0, | ||||
|                   color: Theme.of(context).dividerColor, | ||||
|               textScaler: TextScaler.linear(isLargeText ? 1.1 : 1), | ||||
|               blockquote: TextStyle( | ||||
|                 color: Theme.of(context).colorScheme.onSurfaceVariant, | ||||
|               ), | ||||
|               blockquoteDecoration: BoxDecoration( | ||||
|                 color: Theme.of(context).colorScheme.surfaceContainerHigh, | ||||
|                 borderRadius: const BorderRadius.all(Radius.circular(4)), | ||||
|               ), | ||||
|               horizontalRuleDecoration: BoxDecoration( | ||||
|                 border: Border( | ||||
|                   top: BorderSide( | ||||
|                     width: 1.0, | ||||
|                     color: Theme.of(context).dividerColor, | ||||
|                   ), | ||||
|                 ), | ||||
|               ), | ||||
|             ), | ||||
|           ), | ||||
|               codeblockDecoration: BoxDecoration( | ||||
|                 border: Border.all( | ||||
|                   color: Theme.of(context).dividerColor, | ||||
|                   width: 0.3, | ||||
|                 ), | ||||
|                 borderRadius: const BorderRadius.all(Radius.circular(4)), | ||||
|                 color: Theme.of(context).colorScheme.surface.withOpacity(0.5), | ||||
|               )), | ||||
|           builders: { | ||||
|             'code': _MarkdownTextCodeElement(), | ||||
|           }, | ||||
|           softLineBreak: true, | ||||
|           extensionSet: markdown.ExtensionSet( | ||||
|             markdown.ExtensionSet.gitHubFlavored.blockSyntaxes, | ||||
|             <markdown.BlockSyntax>[ | ||||
|               markdown.CodeBlockSyntax(), | ||||
|               ...markdown.ExtensionSet.commonMark.blockSyntaxes, | ||||
|               ...markdown.ExtensionSet.gitHubFlavored.blockSyntaxes, | ||||
|             ], | ||||
|             <markdown.InlineSyntax>[ | ||||
|               if (isAutoWarp) markdown.LineBreakSyntax(), | ||||
|               _UserNameCardInlineSyntax(), | ||||
|               _CustomEmoteInlineSyntax(), | ||||
|               markdown.EmojiSyntax(), | ||||
|               markdown.AutolinkSyntax(), | ||||
|               markdown.AutolinkExtensionSyntax(), | ||||
|               markdown.CodeSyntax(), | ||||
|               ...markdown.ExtensionSet.commonMark.inlineSyntaxes, | ||||
|               ...markdown.ExtensionSet.gitHubFlavored.inlineSyntaxes | ||||
|             ], | ||||
|           ), | ||||
| @@ -209,7 +219,7 @@ class MarkdownTextContent extends StatelessWidget { | ||||
|   } | ||||
| } | ||||
|  | ||||
| class _UserNameCardInlineSyntax extends InlineSyntax { | ||||
| class _UserNameCardInlineSyntax extends markdown.InlineSyntax { | ||||
|   _UserNameCardInlineSyntax() : super(r'@[a-zA-Z0-9_]+'); | ||||
|  | ||||
|   @override | ||||
| @@ -225,7 +235,7 @@ class _UserNameCardInlineSyntax extends InlineSyntax { | ||||
|   } | ||||
| } | ||||
|  | ||||
| class _CustomEmoteInlineSyntax extends InlineSyntax { | ||||
| class _CustomEmoteInlineSyntax extends markdown.InlineSyntax { | ||||
|   _CustomEmoteInlineSyntax() : super(r':([-\w]+):'); | ||||
|  | ||||
|   @override | ||||
| @@ -245,3 +255,45 @@ class _CustomEmoteInlineSyntax extends InlineSyntax { | ||||
|     return true; | ||||
|   } | ||||
| } | ||||
|  | ||||
| class _MarkdownTextCodeElement extends MarkdownElementBuilder { | ||||
|   @override | ||||
|   Widget? visitElementAfter( | ||||
|     markdown.Element element, | ||||
|     TextStyle? preferredStyle, | ||||
|   ) { | ||||
|     var language = ''; | ||||
|  | ||||
|     if (element.attributes['class'] != null) { | ||||
|       String lg = element.attributes['class'] as String; | ||||
|       language = lg.substring(9).trim(); | ||||
|     } | ||||
|     return SizedBox( | ||||
|       child: FutureBuilder( | ||||
|         future: (() async { | ||||
|           final docPath = '../../../'; | ||||
|           final highlightingPath = | ||||
|               join(docPath, 'assets/highlighting', language); | ||||
|           await Highlighter.initialize([highlightingPath]); | ||||
|           return Highlighter( | ||||
|             language: highlightingPath, | ||||
|             theme: await HighlighterTheme.loadLightTheme(), | ||||
|           ); | ||||
|         })(), | ||||
|         builder: (context, snapshot) { | ||||
|           if (snapshot.hasData) { | ||||
|             final highlighter = snapshot.data!; | ||||
|             return Text.rich( | ||||
|               highlighter.highlight(element.textContent.trim()), | ||||
|               style: GoogleFonts.robotoMono(), | ||||
|             ); | ||||
|           } | ||||
|           return Text( | ||||
|             element.textContent.trim(), | ||||
|             style: GoogleFonts.robotoMono(), | ||||
|           ); | ||||
|         }, | ||||
|       ), | ||||
|     ).paddingAll(8); | ||||
|   } | ||||
| } | ||||
|   | ||||
							
								
								
									
										16
									
								
								pubspec.lock
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								pubspec.lock
									
									
									
									
									
								
							| @@ -795,14 +795,6 @@ packages: | ||||
|       url: "https://pub.dev" | ||||
|     source: hosted | ||||
|     version: "0.7.3+2" | ||||
|   flutter_markdown_selectionarea: | ||||
|     dependency: "direct main" | ||||
|     description: | ||||
|       name: flutter_markdown_selectionarea | ||||
|       sha256: d4bc27e70a5c40ebdab23a4b81f75d53696a214d4d1f13c12045b38a0ddc58a2 | ||||
|       url: "https://pub.dev" | ||||
|     source: hosted | ||||
|     version: "0.6.17+1" | ||||
|   flutter_native_splash: | ||||
|     dependency: "direct dev" | ||||
|     description: | ||||
| @@ -1986,6 +1978,14 @@ packages: | ||||
|       url: "https://pub.dev" | ||||
|     source: hosted | ||||
|     version: "3.3.0+3" | ||||
|   syntax_highlight: | ||||
|     dependency: "direct main" | ||||
|     description: | ||||
|       name: syntax_highlight | ||||
|       sha256: ee33b6aa82cc722bb9b40152a792181dee222353b486c0255fde666a3e3a4997 | ||||
|       url: "https://pub.dev" | ||||
|     source: hosted | ||||
|     version: "0.4.0" | ||||
|   term_glyph: | ||||
|     dependency: transitive | ||||
|     description: | ||||
|   | ||||
| @@ -49,7 +49,6 @@ dependencies: | ||||
|   dismissible_page: ^1.0.2 | ||||
|   share_plus: ^10.0.0 | ||||
|   flutter_cache_manager: ^3.3.3 | ||||
|   flutter_markdown_selectionarea: ^0.6.17+1 | ||||
|   shared_preferences: ^2.2.3 | ||||
|   provider: ^6.1.2 | ||||
|   gal: ^2.3.0 | ||||
| @@ -84,6 +83,7 @@ dependencies: | ||||
|   version: ^3.0.2 | ||||
|   action_slider: ^0.7.0 | ||||
|   in_app_review: ^2.0.9 | ||||
|   syntax_highlight: ^0.4.0 | ||||
|  | ||||
| dev_dependencies: | ||||
|   flutter_test: | ||||
| @@ -103,6 +103,7 @@ flutter: | ||||
|   assets: | ||||
|     - assets/logo.png | ||||
|     - assets/locales/ | ||||
|     - assets/highlighting/ | ||||
|  | ||||
|   fonts: | ||||
|     - family: NotoSansEmoji | ||||
|   | ||||
		Reference in New Issue
	
	Block a user