protected async Task EditorOnDidInit(MonacoEditorBase editor)
 {
     await Editor.AddCommand((int)KeyMode.CtrlCmd | (int)KeyCode.KEY_H, (editor, keyCode) =>
     {
         Console.WriteLine("Ctrl+H : Initial editor command is triggered.");
     });
 }
        protected override async Task OnAfterRenderAsync(bool firstRender)
        {
            await base.OnAfterRenderAsync(firstRender);

            if (firstRender)
            {
                // Create a timer that will determine how quickly the preview updates after changes
                _timer           = new Timer(750);
                _timer.Elapsed  += OnTimerElapsed;
                _timer.AutoReset = false;

                // Register our own language keywords
                List <string> keys    = new();
                var           context = new SimpleCircuit.Parser.ParsingContext();
                foreach (var factory in context.Factory.Factories)
                {
                    foreach (var metadata in factory.Metadata)
                    {
                        keys.AddRange(metadata.Keys);
                    }
                }
                await _js.InvokeVoidAsync("registerLanguage", new object[] { keys.ToArray() });

                var model = await _scriptEditor.GetModel();

                await MonacoEditor.SetModelLanguage(model, "simpleCircuit");

                await MonacoEditorBase.SetTheme("simpleCircuitTheme");

                // Try to find the last saved script
                bool hasScript = false;
                if (_localStore != null)
                {
                    string script = await _localStore.GetItemAsStringAsync("last_script");

                    string style = await _localStore.GetItemAsStringAsync("last_style");

                    if (!string.IsNullOrWhiteSpace(script))
                    {
                        if (!string.IsNullOrWhiteSpace(style))
                        {
                            await SetCurrentScript(script, style);
                        }
                        else
                        {
                            await SetCurrentScript(script, GraphicalCircuit.DefaultStyle);
                        }
                        hasScript = true;
                    }
                }

                // Give the user an initial demo
                if (!hasScript)
                {
                    await SetCurrentScript(Demo.Demos[0].Code, GraphicalCircuit.DefaultStyle);
                }
            }
        }
Exemple #3
0
        private async Task OnMonacoInit()
        {
            await js.RegisterLoliScript();

            var model = await Editor.GetModel();

            await MonacoEditorBase.SetModelLanguage(model, "loliscript");

            await MonacoThemeSetter.SetLoliScriptTheme(OBSettingsService.Settings.CustomizationSettings);
        }
Exemple #4
0
        public static async Task LoadXMLfromFile(MonacoEditor editor, IBrowserFile file)
        {
            byte[] bytesOfXML = new byte[file.Size];
            using (Stream strm = file.OpenReadStream())
            {
                await strm.ReadAsync(bytesOfXML);
            }
            string    stringOfXML = Encoding.UTF8.GetString(bytesOfXML);
            TextModel model       = await MonacoEditorBase.CreateModel(stringOfXML, "xml");

            await editor.SetModel(model);

            //List<string> lLines = stringOfXML.Split("\n").ToList<string>();
        }
Exemple #5
0
        public static async Task SetLolicodeTheme(PersistentSettingsService Settings)
        {
            await MonacoEditorBase.DefineTheme("vs-loli", new StandaloneThemeData
            {
                Base    = Settings.OpenBulletSettings.CustomizationSettings.MonacoTheme,
                Inherit = true,
                Rules   = new List <TokenThemeRule>
                {
                    new TokenThemeRule {
                        Token = "block", Foreground = "5DADE2"
                    },
                    new TokenThemeRule {
                        Token = "block.end", Foreground = "5DADE2"
                    },
                    new TokenThemeRule {
                        Token = "block.disabled", Foreground = "EC7063"
                    },
                    new TokenThemeRule {
                        Token = "block.safe", Foreground = "BCFF70"
                    },
                    new TokenThemeRule {
                        Token = "block.label", Foreground = "58D68D"
                    },
                    new TokenThemeRule {
                        Token = "block.var", Foreground = "F7DC6F"
                    },
                    new TokenThemeRule {
                        Token = "block.cap", Foreground = "F1948A"
                    },
                    new TokenThemeRule {
                        Token = "block.arrow", Foreground = "BB8FCE"
                    },
                    new TokenThemeRule {
                        Token = "block.interp", Foreground = "BB8FCE"
                    },
                    new TokenThemeRule {
                        Token = "block.variable", Foreground = "FAD7A0"
                    },
                    new TokenThemeRule {
                        Token = "string.variable", Foreground = "FAD7A0"
                    }
                }
            });

            await MonacoEditorBase.SetTheme("vs-loli");
        }
        protected async Task EditorOnDidInit(MonacoEditorBase editor)
        {
            await Editor.AddCommand((int)KeyMode.CtrlCmd | (int)KeyCode.KEY_H, (editor, keyCode) =>
            {
                Console.WriteLine("Ctrl+H : Initial editor command is triggered.");
            });

            await Editor.AddAction("saveAction", "Save Snippet (ctrl + s)", new int[] { (int)KeyMode.CtrlCmd | (int)KeyCode.KEY_S }, null, null, "navigation", 1.5, async (editor, keyCodes) =>
            {
                await AddSnippetToUser();
                Console.WriteLine("Ctrl+D : Editor action is triggered.");
            });

            await Editor.AddAction("executeAction", "Execute Code (ctrl + enter)",
                                   new int[] { (int)KeyMode.CtrlCmd | (int)KeyCode.Enter }, null, null, "navigation", 2.5,
                                   async (editor, keyCodes) =>
            {
                await SubmitCode();
                Console.WriteLine("Code Executed from Editor Command");
            });

            await Editor.SetValue(CodeEditorService.CodeSnippet);

            var newDecorations = new[]
            {
                new ModelDeltaDecoration
                {
                    Range   = new Range(3, 1, 3, 1),
                    Options = new ModelDecorationOptions
                    {
                        IsWholeLine          = false,
                        ClassName            = "decorationContentClass",
                        GlyphMarginClassName = "decorationGlyphMarginClass"
                    }
                }
            };

            decorationIds = await Editor.DeltaDecorations(null, newDecorations);
        }
Exemple #7
0
        private async Task EditorOnDidInit()
        {
            var originalId = $"{Id}-originalModel";
            var modifiedId = $"{Id}-modifiedModel";

            var originalModel =
                await MonacoEditorBase.GetModel(originalId) ??
                await MonacoEditorBase.CreateModel(OriginalValue, _language, originalId);

            var modifiedModel =
                await MonacoEditorBase.GetModel(modifiedId) ??
                await MonacoEditorBase.CreateModel(ModifiedValue, _language, modifiedId);

            //initialte the 2 yaml files
            await _monacoDiffEditor.SetModel(new DiffEditorModel
            {
                Original = originalModel,
                Modified = modifiedModel
            });

            //do the parent on init callback
            await OnDidInit.InvokeAsync(this);
        }
Exemple #8
0
 private async Task EditorOnDidInit(MonacoEditorBase editor)
 {
     await LoadFile();
 }
        public static async Task SetLoliScriptTheme(CustomizationSettings settings)
        {
            await MonacoEditorBase.DefineTheme("vs-loliscript", new StandaloneThemeData
            {
                Base    = settings.MonacoTheme,
                Inherit = true,
                Rules   = new List <TokenThemeRule>
                {
                    new TokenThemeRule {
                        Token = "comment", Foreground = "808080"
                    },
                    new TokenThemeRule {
                        Token = "disabled", Foreground = "FF6347"
                    },
                    new TokenThemeRule {
                        Token = "variable", Foreground = "FFFF00"
                    },
                    new TokenThemeRule {
                        Token = "capture", Foreground = "FF6347"
                    },
                    new TokenThemeRule {
                        Token = "arrow", Foreground = "FF00FF"
                    },
                    new TokenThemeRule {
                        Token = "number", Foreground = "8FBC8B"
                    },
                    new TokenThemeRule {
                        Token = "string", Foreground = "ADD8E6"
                    },
                    new TokenThemeRule {
                        Token = "block.label", Foreground = "FFDAB9"
                    },
                    new TokenThemeRule {
                        Token = "block.function", Foreground = "ADFF2F"
                    },
                    new TokenThemeRule {
                        Token = "block.keycheck", Foreground = "1E90FF"
                    },
                    new TokenThemeRule {
                        Token = "block.keycheck.keychain", Foreground = "DDA0DD"
                    },
                    new TokenThemeRule {
                        Token = "block.keycheck.keychain.key", Foreground = "87CEEB"
                    },
                    new TokenThemeRule {
                        Token = "block.recaptcha", Foreground = "40E0D0"
                    },
                    new TokenThemeRule {
                        Token = "block.request", Foreground = "32CD32"
                    },
                    new TokenThemeRule {
                        Token = "block.request.header", Foreground = "DDA0DD"
                    },
                    new TokenThemeRule {
                        Token = "block.request.cookie", Foreground = "87CEEB"
                    },
                    new TokenThemeRule {
                        Token = "block.parse", Foreground = "FFD700"
                    },
                    new TokenThemeRule {
                        Token = "block.parse.mode", Foreground = "FFA500"
                    },
                    new TokenThemeRule {
                        Token = "block.captcha", Foreground = "FF8C00"
                    },
                    new TokenThemeRule {
                        Token = "block.tcp", Foreground = "9370DB"
                    },
                    new TokenThemeRule {
                        Token = "block.utility", Foreground = "F5DEB3"
                    },
                    new TokenThemeRule {
                        Token = "block.navigate", Foreground = "4169E1"
                    },
                    new TokenThemeRule {
                        Token = "block.browseraction", Foreground = "008000"
                    },
                    new TokenThemeRule {
                        Token = "block.elementaction", Foreground = "B22222"
                    },
                    new TokenThemeRule {
                        Token = "block.executejs", Foreground = "4B0082"
                    },
                    new TokenThemeRule {
                        Token = "keyword", Foreground = "FF4500"
                    },
                    new TokenThemeRule {
                        Token = "command", Foreground = "FFA500"
                    },
                }
            });

            await MonacoEditorBase.SetTheme("vs-loliscript");
        }
        public static async Task SetLoliCodeTheme(CustomizationSettings settings)
        {
            await MonacoEditorBase.DefineTheme("vs-lolicode", new StandaloneThemeData
            {
                Base    = settings.MonacoTheme,
                Inherit = true,
                Rules   = new List <TokenThemeRule>
                {
                    new TokenThemeRule {
                        Token = "block", Foreground = "98CFFF"
                    },
                    new TokenThemeRule {
                        Token = "block.end", Foreground = "98CFFF"
                    },
                    new TokenThemeRule {
                        Token = "block.disabled", Foreground = "EC7063"
                    },
                    new TokenThemeRule {
                        Token = "block.safe", Foreground = "BCFF70"
                    },
                    new TokenThemeRule {
                        Token = "block.label", Foreground = "58D68D"
                    },
                    new TokenThemeRule {
                        Token = "block.var", Foreground = "F7DC6F"
                    },
                    new TokenThemeRule {
                        Token = "block.cap", Foreground = "F1948A"
                    },
                    new TokenThemeRule {
                        Token = "block.arrow", Foreground = "BB8FCE"
                    },
                    new TokenThemeRule {
                        Token = "block.interp", Foreground = "BB8FCE"
                    },
                    new TokenThemeRule {
                        Token = "block.variable", Foreground = "FAD7A0"
                    },
                    new TokenThemeRule {
                        Token = "block.customparam", Foreground = "A8FFD2"
                    },
                    new TokenThemeRule {
                        Token = "string.variable", Foreground = "FAD7A0"
                    },
                    new TokenThemeRule {
                        Token = "jumplabel", Foreground = "F78686"
                    },
                    new TokenThemeRule {
                        Token = "key", Foreground = "6F81FF"
                    },
                    new TokenThemeRule {
                        Token = "false", Foreground = "FF6347"
                    },
                    new TokenThemeRule {
                        Token = "true", Foreground = "9ACD32"
                    },
                    new TokenThemeRule {
                        Token = "keychain.success", Foreground = "9ACD32"
                    },
                    new TokenThemeRule {
                        Token = "keychain.fail", Foreground = "FF6347"
                    },
                    new TokenThemeRule {
                        Token = "keychain.retry", Foreground = "FFFF00"
                    },
                    new TokenThemeRule {
                        Token = "keychain.ban", Foreground = "DDA0DD"
                    },
                    new TokenThemeRule {
                        Token = "keychain.none", Foreground = "87CEEB"
                    },
                    new TokenThemeRule {
                        Token = "keychain.default", Foreground = "FFA500"
                    },
                    new TokenThemeRule {
                        Token = "script.delimiter", Foreground = "6F81FF"
                    },
                    new TokenThemeRule {
                        Token = "script.output", Foreground = "FFBC80"
                    },
                }
            });

            await MonacoEditorBase.SetTheme("vs-lolicode");
        }
 private async Task ChangeTheme(ChangeEventArgs e)
 {
     Console.WriteLine($"setting theme to: {e.Value}");
     await MonacoEditorBase.SetTheme(e.Value.ToString());
 }