6
6
7
7
namespace CodeEditor_WinUI_TestApp
8
8
{
9
- internal class ViewModel : Bindable
9
+ internal class ViewModel : Bindable
10
+ {
11
+ public List < Language > LanguageList = new ( )
10
12
{
11
- public List < Language > LanguageList = new ( )
13
+ Languages . ConTeXt ,
14
+ new ( "Lua" )
15
+ {
16
+ FoldingPairs = new ( )
12
17
{
13
- Languages . ConTeXt ,
14
- new ( )
15
- {
16
- Name = "Lua" ,
17
- FoldingPairs = new ( )
18
- {
19
- new ( ) { RegexStart = /*language=regex*/ @"\bfunction\b" , RegexEnd = /*language=regex*/ @"\bend\b" } ,
20
- new ( ) { RegexStart = /*language=regex*/ @"\bfor\b" , RegexEnd = /*language=regex*/ @"\bend\b" } ,
21
- new ( ) { RegexStart = /*language=regex*/ @"\bwhile\b" , RegexEnd = /*language=regex*/ @"\bend\b" } ,
22
- new ( ) { RegexStart = /*language=regex*/ @"\bif\b" , RegexEnd = /*language=regex*/ @"\bend\b" } ,
23
- } ,
24
- RegexTokens = new ( )
25
- {
26
- { Token . Math , /*language=regex*/ @"\b(math)\.(pi|a?tan|atan2|tanh|a?cos|cosh|a?sin|sinh|max|pi|min|ceil|floor|(fr|le)?exp|pow|fmod|modf|random(seed)?|sqrt|log(10)?|deg|rad|abs)\b" } ,
27
- { Token . Array , /*language=regex*/ @"\b((table)\.(insert|concat|sort|remove|maxn)|(string)\.(insert|sub|rep|reverse|format|len|find|byte|char|dump|lower|upper|g?match|g?sub|format|formatters))\b" } ,
28
- { Token . Symbol , /*language=regex*/ @"[:=<>,.!?&%+\|\-*\/\^~;]" } ,
29
- { Token . Bracket , /*language=regex*/ @"[\[\]\(\)\{\}]" } ,
30
- { Token . Number , /*language=regex*/ @"0[xX][0-9a-fA-F]*|-?\d*\.\d+([eE][\-+]?\d+)?|-?\d+?" } ,
31
- { Token . String , /*language=regex*/ "\\ \" .*?\\ \" |'.*?'" } ,
32
- { Token . Comment , /*language=regex*/ @"--.*" } ,
33
- } ,
34
- WordTokens = new ( )
35
- {
36
- { Token . Keyword , new string [ ] { "local" , "true" , "false" , "in" , "else" , "not" , "or" , "and" , "then" , "nil" , "end" , "do" , "repeat" , "goto" , "until" , "return" , "break" } } ,
37
- { Token . Environment , new string [ ] { "function" , "end" , "if" , "elseif" , "else" , "while" , "for" , } } ,
38
- { Token . Function , new string [ ] { "#" , "assert" , "collectgarbage" , "dofile" , "_G" , "getfenv" , "ipairs" , "load" , "loadstring" , "pairs" , "pcall" , "print" , "rawequal" , "rawget" , "rawset" , "select" , "setfenv" , "_VERSION" , "xpcall" , "module" , "require" , "tostring" , "tonumber" , "type" , "rawset" , "setmetatable" , "getmetatable" , "error" , "unpack" , "next" , } }
39
- } ,
40
- }
41
- } ;
18
+ new ( ) { RegexStart = /*language=regex*/ @"\bfunction\b" , RegexEnd = /*language=regex*/ @"\bend\b" } ,
19
+ new ( ) { RegexStart = /*language=regex*/ @"\bfor\b" , RegexEnd = /*language=regex*/ @"\bend\b" } ,
20
+ new ( ) { RegexStart = /*language=regex*/ @"\bwhile\b" , RegexEnd = /*language=regex*/ @"\bend\b" } ,
21
+ new ( ) { RegexStart = /*language=regex*/ @"\bif\b" , RegexEnd = /*language=regex*/ @"\bend\b" } ,
22
+ } ,
23
+ RegexTokens = new ( )
24
+ {
25
+ { Token . Math , /*language=regex*/ @"\b(math)\.(pi|a?tan|atan2|tanh|a?cos|cosh|a?sin|sinh|max|pi|min|ceil|floor|(fr|le)?exp|pow|fmod|modf|random(seed)?|sqrt|log(10)?|deg|rad|abs)\b" } ,
26
+ { Token . Array , /*language=regex*/ @"\b((table)\.(insert|concat|sort|remove|maxn)|(string)\.(insert|sub|rep|reverse|format|len|find|byte|char|dump|lower|upper|g?match|g?sub|format|formatters))\b" } ,
27
+ { Token . Symbol , /*language=regex*/ @"[:=<>,.!?&%+\|\-*\/\^~;]" } ,
28
+ { Token . Bracket , /*language=regex*/ @"[\[\]\(\)\{\}]" } ,
29
+ { Token . Number , /*language=regex*/ @"0[xX][0-9a-fA-F]*|-?\d*\.\d+([eE][\-+]?\d+)?|-?\d+?" } ,
30
+ { Token . String , /*language=regex*/ "\\ \" .*?\\ \" |'.*?'" } ,
31
+ { Token . Comment , /*language=regex*/ @"--.*" } ,
32
+ } ,
33
+ WordTokens = new ( )
34
+ {
35
+ { Token . Keyword , new string [ ] { "local" , "true" , "false" , "in" , "else" , "not" , "or" , "and" , "then" , "nil" , "end" , "do" , "repeat" , "goto" , "until" , "return" , "break" } } ,
36
+ { Token . Environment , new string [ ] { "function" , "end" , "if" , "elseif" , "else" , "while" , "for" , } } ,
37
+ { Token . Function , new string [ ] { "#" , "assert" , "collectgarbage" , "dofile" , "_G" , "getfenv" , "ipairs" , "load" , "loadstring" , "pairs" , "pcall" , "print" , "rawequal" , "rawget" , "rawset" , "select" , "setfenv" , "_VERSION" , "xpcall" , "module" , "require" , "tostring" , "tonumber" , "type" , "rawset" , "setmetatable" , "getmetatable" , "error" , "unpack" , "next" , } }
38
+ } ,
39
+ }
40
+ } ;
42
41
43
- public Language EditorLanguage { get => Get ( LanguageList [ 1 ] ) ; set { Set ( value ) ; } }
44
- public int FontSize { get => Get ( 20 ) ; set => Set ( value ) ; }
45
- public bool IsFoldingEnabled { get => Get ( true ) ; set => Set ( value ) ; }
46
- public string Language { get => Get ( "Lua" ) ; set { Set ( value ) ; EditorLanguage = LanguageList . First ( x => x . Name == value ) ; } }
47
- public string [ ] LanguageOptions => LanguageList . Select ( x => x . Name ) . ToArray ( ) ;
48
- public string LastSavedText { get => Get ( "" ) ; set { Set ( value ) ; UnsavedChanges = value != Text ; } }
49
- public string Log { get => Get ( "" ) ; set => Set ( value ) ; }
50
- public ElementTheme RequestedTheme { get => Get ( ElementTheme . Default ) ; set => Set ( value ) ; }
51
- public bool ShowControlCharacters { get => Get ( true ) ; set => Set ( value ) ; }
52
- public bool ShowHorizontalTicks { get => Get ( true ) ; set => Set ( value ) ; }
53
- public bool ShowLineMarkers { get => Get ( true ) ; set => Set ( value ) ; }
54
- public bool ShowLineNumbers { get => Get ( true ) ; set => Set ( value ) ; }
55
- public bool ShowScrollbarMarkers { get => Get ( true ) ; set => Set ( value ) ; }
56
- public int TabLength { get => Get ( 2 ) ; set => Set ( value ) ; }
57
- public string Text { get => Get ( "" ) ; set { Set ( value ) ; UnsavedChanges = value != LastSavedText ; } }
58
- public string Theme { get => Get ( "Default" ) ; set { Set ( value ) ; RequestedTheme = ( ElementTheme ) Enum . Parse ( typeof ( ElementTheme ) , value ) ; } }
59
- public string [ ] ThemeOptions => Enum . GetNames < ElementTheme > ( ) ;
60
- public bool UnsavedChanges { get => Get ( false ) ; set => Set ( value ) ; }
61
- }
42
+ public Language EditorLanguage { get => Get ( LanguageList [ 1 ] ) ; set { Set ( value ) ; } }
43
+ public int FontSize { get => Get ( 20 ) ; set => Set ( value ) ; }
44
+ public bool IsFoldingEnabled { get => Get ( true ) ; set => Set ( value ) ; }
45
+ public bool IsWrappingEnabled { get => Get ( true ) ; set => Set ( value ) ; }
46
+ public string Language { get => Get ( "Lua" ) ; set { Set ( value ) ; EditorLanguage = LanguageList . First ( x => x . Name == value ) ; } }
47
+ public string [ ] LanguageOptions => LanguageList . Select ( x => x . Name ) . ToArray ( ) ;
48
+ public string LastSavedText { get => Get ( "" ) ; set { Set ( value ) ; UnsavedChanges = value != Text ; } }
49
+ public string Log { get => Get ( "" ) ; set => Set ( value ) ; }
50
+ public ElementTheme RequestedTheme { get => Get ( ElementTheme . Default ) ; set => Set ( value ) ; }
51
+ public bool ShowControlCharacters { get => Get ( true ) ; set => Set ( value ) ; }
52
+ public bool ShowHorizontalTicks { get => Get ( true ) ; set => Set ( value ) ; }
53
+ public bool ShowLineMarkers { get => Get ( true ) ; set => Set ( value ) ; }
54
+ public bool ShowLineNumbers { get => Get ( true ) ; set => Set ( value ) ; }
55
+ public bool ShowScrollbarMarkers { get => Get ( true ) ; set => Set ( value ) ; }
56
+ public int TabLength { get => Get ( 2 ) ; set => Set ( value ) ; }
57
+ public string Text { get => Get ( "" ) ; set { Set ( value ) ; UnsavedChanges = value != LastSavedText ; } }
58
+ public string Theme { get => Get ( "Default" ) ; set { Set ( value ) ; RequestedTheme = ( ElementTheme ) Enum . Parse ( typeof ( ElementTheme ) , value ) ; } }
59
+ public string [ ] ThemeOptions => Enum . GetNames < ElementTheme > ( ) ;
60
+ public bool UnsavedChanges { get => Get ( false ) ; set => Set ( value ) ; }
61
+ }
62
62
}
0 commit comments