コード例 #1
0
        private static void CreateTemplates()
        {
            try
            {
                // Uncomment these as they get added in
                Directory.CreateDirectory(FileLocations.TemplatesDir);
                Resources.Resources.GetResource("Templates.xml", Path.Combine(FileLocations.TemplatesDir, "Templates.xml"));
                Directory.CreateDirectory(Path.Combine(FileLocations.TemplatesDir, "Binary"));
                var stream = File.Create(Path.Combine(FileLocations.TemplatesDir, "Binary\\Default.asm"));
                stream.Close();

                Directory.CreateDirectory(Path.Combine(FileLocations.TemplatesDir, "TI-73"));

                // Resources.GetResource("TemplatesSource.nostub73.asm", Path.Combine(templatesDir, "NoStub.asm"));
                Directory.CreateDirectory(Path.Combine(FileLocations.TemplatesDir, "TI-82"));

                // Resources.GetResource("TemplatesSource.nostub82.asm", Path.Combine(templatesDir, "NoStub.asm"));
                Resources.Resources.GetResource("TemplatesSource.crash.asm", Path.Combine(FileLocations.TemplatesDir, "TI-82\\CrASH.asm"));
                Directory.CreateDirectory(Path.Combine(FileLocations.TemplatesDir, "TI-83"));
                Resources.Resources.GetResource("TemplatesSource.nostub83.asm", Path.Combine(FileLocations.TemplatesDir, "TI-83\\NoStub.asm"));
                Resources.Resources.GetResource("TemplatesSource.venus.asm", Path.Combine(FileLocations.TemplatesDir, "TI-83\\NoStub.asm"));
                Resources.Resources.GetResource("TemplatesSource.ion83.asm", Path.Combine(FileLocations.TemplatesDir, "TI-83\\NoStub.asm"));
                Resources.Resources.GetResource("TemplatesSource.ashell.asm", Path.Combine(FileLocations.TemplatesDir, "TI-83\\AShell.asm"));
                Directory.CreateDirectory(Path.Combine(FileLocations.TemplatesDir, "TI-83 Plus"));
                Resources.Resources.GetResource("TemplatesSource.nostub83p.asm", Path.Combine(FileLocations.TemplatesDir, "TI-83 Plus\\NoStub.asm"));
                Resources.Resources.GetResource("TemplatesSource.ion83p.asm", Path.Combine(FileLocations.TemplatesDir, "TI-83 Plus\\Ion.asm"));
                Resources.Resources.GetResource("TemplatesSource.mirage.asm", Path.Combine(FileLocations.TemplatesDir, "TI-83 Plus\\Mirage.asm"));
                Resources.Resources.GetResource("TemplatesSource.dcs.asm", Path.Combine(FileLocations.TemplatesDir, "TI-83 Plus\\DoorsCS.asm"));
                Resources.Resources.GetResource("TemplatesSource.app.asm", Path.Combine(FileLocations.TemplatesDir, "TI-83 Plus\\App.asm"));
                Resources.Resources.GetResource("TemplatesSource.icon.bmp", Path.Combine(FileLocations.TemplatesDir, "Icon.bmp"));
                Directory.CreateDirectory(Path.Combine(FileLocations.TemplatesDir, "TI-85"));

                // Resources.GetResource("Templates Source.nostub85.asm", Path.Combine(templatesDir, "NoStub.asm"));
                Directory.CreateDirectory(Path.Combine(FileLocations.TemplatesDir, "TI-86"));

                // Resources.GetResource("Templates Source.nostub86.asm", Path.Combine(templatesDir, "NoStub.asm"));

                // Directory.CreateDirectory(Path.Combine(Path.Combine(templatesDir, "TI-83 Plus"), "App"));
                // Directory.CreateDirectory(Path.Combine(Path.Combine(templatesDir, "TI-83 Plus"), "Mirage OS"));
                // Directory.CreateDirectory(Path.Combine(Path.Combine(templatesDir, "TI-83 Plus"), "Ion"));
                // Directory.CreateDirectory(Path.Combine(Path.Combine(templatesDir, "TI-83 Plus"), "No Stub"));

                Directory.CreateDirectory(FileLocations.IncludesDir);
                Resources.Resources.GetResource("TemplatesIncludes.ti73.inc", Path.Combine(FileLocations.IncludesDir, "ti73.inc"));
                Resources.Resources.GetResource("TemplatesIncludes.ti83plus.inc", Path.Combine(FileLocations.IncludesDir, "ti83plus.inc"));
                Resources.Resources.GetResource("TemplatesIncludes.relocate.inc", Path.Combine(FileLocations.IncludesDir, "relocate.inc"));
                Resources.Resources.GetResource("TemplatesIncludes.app.inc", Path.Combine(FileLocations.IncludesDir, "app.inc"));
                Resources.Resources.GetResource("TemplatesIncludes.z80ext.inc", Path.Combine(FileLocations.IncludesDir, "z80ext.inc"));
                Resources.Resources.GetResource("TemplatesIncludes.var.inc", Path.Combine(FileLocations.IncludesDir, "var.inc"));
                Resources.Resources.GetResource("TemplatesIncludes.ion.inc", Path.Combine(FileLocations.IncludesDir, "ion.inc"));
                Resources.Resources.GetResource("TemplatesIncludes.mirage.inc", Path.Combine(FileLocations.IncludesDir, "mirage.inc"));
                Resources.Resources.GetResource("TemplatesIncludes.dcs7.inc", Path.Combine(FileLocations.IncludesDir, "dcs7.inc"));
                Resources.Resources.GetResource("TemplatesIncludes.keys82.inc", Path.Combine(FileLocations.IncludesDir, "keys82.inc"));
                Resources.Resources.GetResource("TemplatesIncludes.ti82.h", Path.Combine(FileLocations.IncludesDir, "ti82.h"));
            }
            catch (Exception ex)
            {
                DockingService.ShowError("Error creating includes and templates", ex);
            }
        }
コード例 #2
0
        public void ShowErrorTest()
        {
            string error = string.Empty;             // TODO: Initialize to an appropriate value

            DockingService.ShowError(error);
            Assert.Inconclusive("A method that does not return a value cannot be verified.");
        }
コード例 #3
0
        private void okButton_Click(object sender, RoutedEventArgs e)
        {
            string projectDir  = projectDirBox.Text.Trim().CleanPath();
            string projectName = projectNameBox.Text.Trim().CleanFilename();

            if (string.IsNullOrEmpty(projectDir))
            {
                DockingService.ShowError("Project directory cannot be empty. Please specify a path for your project");
                return;
            }
            if (string.IsNullOrEmpty(projectName))
            {
                DockingService.ShowError("Project name cannot be empty. Please enter a name for your project");
                return;
            }
            string projectFile = projFromExistingCodeBox.IsChecked == true ? projectDir : System.IO.Path.Combine(projectDir, projectName);

            if (!Directory.Exists(projectDir))
            {
                Directory.CreateDirectory(projectDir);
            }

            var project = new Project(projectFile, projectName);

            using (FileStream stream = new FileStream(projectFile, FileMode.Open))
            {
                projectService.OpenProject(stream, projectFile);
            }

            this.Close();
        }
コード例 #4
0
        private void BuildAction_BuildFinished(object sender, AssemblyFinishEventArgs e)
        {
            if (!e.Output.Succeeded)
            {
                if (DockingService.ShowMessageBox(null, "There were errors assembling. Would you like to continue and try to debug?",
                                                  "Continue", MessageBoxButtons.YesNo, MessageBoxIcon.Error) == DialogResult.No)
                {
                    return;
                }
            }

            try
            {
                _debuggerService.StartDebugging();
            }
            catch (MissingRomException)
            {
                bool hasRom = PromptForRomFile();
                if (hasRom)
                {
                    Execute();
                }
            }
            catch (DebuggingException ex)
            {
                DockingService.ShowError("Unable to start debugging", ex);
            }
        }
コード例 #5
0
        private void NewFile_Executed(object sender, RoutedEventArgs e)
        {
            var newFile = DocumentService.CreateDocument("New Document");

            DockingService.ShowDockPanel(newFile);
            Keyboard.Focus(newFile.editor.TextArea);
        }
コード例 #6
0
        public void DestroyServiceTest()
        {
            DockingService target = new DockingService();             // TODO: Initialize to an appropriate value

            target.DestroyService();
            Assert.Inconclusive("A method that does not return a value cannot be verified.");
        }
コード例 #7
0
        protected override void Execute()
        {
            if (_fileNames == null)
            {
                if (!ShowDialog())
                {
                    return;
                }

                if (_fileNames == null)
                {
                    return;
                }
            }

            foreach (var fileName in _fileNames)
            {
                try
                {
                    if (!_fileTypeMethodFactory.OpenRegisteredFile(fileName))
                    {
                        throw new IOException("Opening file failed");
                    }
                }
                catch (IOException ex)
                {
                    DockingService.ShowError("Error opening file", ex);
                }
            }
        }
コード例 #8
0
        private void dockManager_Loaded(object sender, RoutedEventArgs e)
        {
            DockingService.InitPanels(StatusBar);

            //handle any arguments sent
            HandleArgs(args);
        }
コード例 #9
0
        protected override void Execute()
        {
            FilePath fileName;

            using (OpenFileDialog openFileDialog = new OpenFileDialog
            {
                CheckFileExists = true,
                DefaultExt = "*.wcodeproj",
                Filter = "Project Files (*.wcodeproj)|*.wcodeproj|All Files(*.*)|*.*",
                FilterIndex = 0,
                RestoreDirectory = true,
                Title = "Open Project File",
            })
            {
                if (openFileDialog.ShowDialog() != DialogResult.OK)
                {
                    return;
                }

                fileName = new FilePath(openFileDialog.FileName);
            }

            try
            {
                if (!_projectService.OpenProject(fileName))
                {
                    _projectService.CreateInternalProject();
                }
            }
            catch (Exception ex)
            {
                DockingService.ShowError("Error opening file.", ex);
            }
        }
コード例 #10
0
        private void okButton_Click(object sender, EventArgs e)
        {
            var refs = _projectService.FindAllReferences(_extractedMethod);

            foreach (var file in refs)
            {
                string fileName = file.First().File;

                TextEditorControl editor = new WabbitcodeTextEditor();
                editor.LoadFile(fileName);

                foreach (var reference in file)
                {
                    int offset = editor.Document.GetOffsetForLineNumber(reference.Line) + reference.Col;
                    int len    = reference.ReferenceString.Length;
                    editor.Document.Replace(offset, len, nameBox.Text);
                }

                try
                {
                    editor.SaveFile(fileName);
                }
                catch (Exception ex)
                {
                    DockingService.ShowError("Error saving refactor", ex);
                }
            }
        }
コード例 #11
0
        public void ShowDockPanelTest1()
        {
            DockingService  target = new DockingService(); // TODO: Initialize to an appropriate value
            DockableContent doc    = null;                 // TODO: Initialize to an appropriate value

            target.ShowDockPanel(doc);
            Assert.Inconclusive("A method that does not return a value cannot be verified.");
        }
コード例 #12
0
        public void ActivePanelTest()
        {
            DockingService   target = new DockingService();           // TODO: Initialize to an appropriate value
            IWabbitcodePanel actual;

            actual = target.ActivePanel;
            Assert.Inconclusive("Verify the correctness of this test method.");
        }
コード例 #13
0
        public void DocumentsTest()
        {
            DockingService target = new DockingService();             // TODO: Initialize to an appropriate value
            ManagedContentCollection <DocumentContent> actual;

            actual = target.Documents;
            Assert.Inconclusive("Verify the correctness of this test method.");
        }
コード例 #14
0
        public void ActiveDocumentTest()
        {
            DockingService target = new DockingService();             // TODO: Initialize to an appropriate value
            Editor         actual;

            actual = target.ActiveDocument;
            Assert.Inconclusive("Verify the correctness of this test method.");
        }
コード例 #15
0
        public void InitPanelsTest()
        {
            DockingService      target    = new DockingService(); // TODO: Initialize to an appropriate value
            WabbitcodeStatusBar statusBar = null;                 // TODO: Initialize to an appropriate value

            target.InitPanels(statusBar);
            Assert.Inconclusive("A method that does not return a value cannot be verified.");
        }
コード例 #16
0
 protected override void Execute()
 {
     try
     {
         _editor.SaveFile();
     }
     catch (Exception ex)
     {
         DockingService.ShowError("Error saving file.", ex);
     }
 }
コード例 #17
0
ファイル: MainForm.cs プロジェクト: BuckeyeDude/Wabbitcode
 private void RestoreWindow()
 {
     try
     {
         WindowState = Settings.Default.WindowState;
         Size        = Settings.Default.WindowSize;
     }
     catch (Exception ex)
     {
         DockingService.ShowError("Error restoring the window size", ex);
     }
 }
コード例 #18
0
        internal static void InitFiles()
        {
            try
            {
                if (!File.Exists(SpasmFile))
                {
                    Resources.Resources.GetResource("spasm.exe", SpasmFile);
                }

                if (!File.Exists(WabbitemuFile))
                {
                    Resources.Resources.GetResource("Wabbitemu.exe", WabbitemuFile);
                }
            }
            catch (Exception ex)
            {
                DockingService.ShowError("Unable to initialize files", ex);
            }
        }
コード例 #19
0
 protected override void OnReloadHighlighting(object sender, EventArgs e)
 {
     try
     {
         if (!string.IsNullOrEmpty(FileName))
         {
             IHighlightingStrategy strategy = HighlightingManager.Manager.FindHighlighterForFile(FileName);
             SetHighlighting(strategy.Name);
         }
         else
         {
             SetHighlighting("Z80 Assembly");
         }
     }
     catch (HighlightingDefinitionInvalidException ex)
     {
         DockingService.ShowError("Error loading highlighting", ex);
     }
 }
コード例 #20
0
        internal static void InitDirs()
        {
            if (!Settings.Default.CreateFolders)
            {
                return;
            }

            try
            {
                Directory.CreateDirectory(WabbitcodeFolder);
                Directory.CreateDirectory(TemplatesDir);
                Directory.CreateDirectory(IncludesDir);
                Directory.CreateDirectory(ProjectsDir);
            }
            catch (Exception ex)
            {
                DockingService.ShowError("Unable to create directories", ex);
            }
        }
コード例 #21
0
        public NewProjectDialog()
        {
            InitializeComponent();
            CreateTemplates();
            if (!Directory.Exists(FileLocations.ProjectsDir))
            {
                Directory.CreateDirectory(FileLocations.ProjectsDir);
            }

            try
            {
                ParseTemplatesFile();
            }
            catch (InvalidDataException ex)
            {
                DockingService.ShowError("Templates file formatted incorrectly", ex);
            }

            locTextBox.Text = FileLocations.ProjectsDir;
        }
コード例 #22
0
ファイル: TextEditor.cs プロジェクト: BuckeyeDude/Wabbitcode
        protected override void SaveFileInner()
        {
            if (string.IsNullOrEmpty(FileName))
            {
                AbstractUiAction.RunCommand(new SaveAsCommand(this));
                return;
            }

            _stackTop = editorBox.Document.UndoStack.UndoItemCount;
            try
            {
                editorBox.SaveFile(FileName);
            }
            catch (Exception ex)
            {
                DockingService.ShowError("Error saving the file", ex);
            }

            editorBox.Document.HighlightingStrategy = HighlightingStrategyFactory.CreateHighlightingStrategyForFile(FileName);
        }
コード例 #23
0
ファイル: MainForm.cs プロジェクト: BuckeyeDude/Wabbitcode
        private void MainFormRedone_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (_debuggerService.CurrentDebugger != null)
            {
                AbstractUiAction.RunCommand(new StopDebuggerAction());
            }

            if (!_projectService.Project.IsInternal)
            {
                AbstractUiAction.RunCommand(new CloseProjectAction());
            }

            _pluginService.UnloadPlugins();

            try
            {
                SaveWindow();
            }
            catch (Exception ex)
            {
                DockingService.ShowError("Error saving window location", ex);
            }

            try
            {
                _dockingService.SavePanels();
            }
            catch (Exception ex)
            {
                DockingService.ShowError("Error destroying DockService", ex);
            }

            try
            {
                Settings.Default.Save();
            }
            catch (Exception ex)
            {
                DockingService.ShowError("Error saving configuration file", ex);
            }
        }
コード例 #24
0
ファイル: MainForm.cs プロジェクト: BuckeyeDude/Wabbitcode
        private void LoadStartupProject()
        {
            if (string.IsNullOrEmpty(Settings.Default.StartupProject))
            {
                return;
            }

            try
            {
                bool valid = false;
                if (File.Exists(Settings.Default.StartupProject))
                {
                    valid = _projectService.OpenProject(new FilePath(Settings.Default.StartupProject));
                }
                else
                {
                    Settings.Default.StartupProject = string.Empty;
                    DockingService.ShowError("Error: Project file not found");
                }

                if (_projectService.Project.IsInternal || !valid)
                {
                    _projectService.CreateInternalProject();
                }
            }
            catch (Exception ex)
            {
                _projectService.CreateInternalProject();
                var result = MessageBox.Show(
                    "There was an error loading the startup project, would you like to remove it?\n" + ex,
                    "Error",
                    MessageBoxButtons.YesNo,
                    MessageBoxIcon.Error);
                if (result == DialogResult.Yes)
                {
                    Settings.Default.StartupProject = string.Empty;
                }
            }
        }
コード例 #25
0
ファイル: HelpActions.cs プロジェクト: BuckeyeDude/Wabbitcode
 protected override void Execute()
 {
     try
     {
         if (UpdateService.CheckForUpdate())
         {
             var result = MessageBox.Show("New version available. Download now?",
                 "Update Available", MessageBoxButtons.YesNo, MessageBoxIcon.None);
             if (result == DialogResult.Yes)
             {
                 UpdateService.StartUpdater();
             }
         }
         else
         {
             MessageBox.Show("No new updates");
         }
     }
     catch (Exception ex)
     {
         DockingService.ShowError("Error updating", ex);
     }
 }
コード例 #26
0
        private void okButton_Click(object sender, EventArgs e)
        {
            int lineNum;

            if (!int.TryParse(lineBox.Text, out lineNum))
            {
                return;
            }

            lineNum--;
            FilePath fileName = new FilePath(fileBox.Text);

            if (File.Exists(fileName))
            {
                AbstractUiAction.RunCommand(new GotoFileAction(fileName));
            }
            else
            {
                DockingService.ShowError("File doesn't exist!");
                return;
            }

            WabbitcodeBreakpointManager.AddBreakpoint(fileName, lineNum);
        }
コード例 #27
0
        public static void MakeHighlightingFile()
        {
            string commentsColor = Settings.Default.CommentColor.ToHexString();

            string blockCommentsColor = Settings.Default.BlockCommentColor.ToHexString();
            string stringsColor       = Settings.Default.StringColor.ToHexString();
            string directivesColor    = Settings.Default.DirectiveColor.ToHexString();
            string preProcessorColor  = Settings.Default.PreProcessorColor.ToHexString();
            string opcodesColor       = Settings.Default.OpcodeColor.ToHexString();
            string registersColor     = Settings.Default.RegisterColor.ToHexString();
            string conditionsColor    = Settings.Default.ConditionColor.ToHexString();
            string labelsColor        = Settings.Default.LabelColor.ToHexString();

            if (!Settings.Default.CommentsEnabled)
            {
                commentsColor = "#000000";
            }

            if (!Settings.Default.BlockCommentEnabled)
            {
                blockCommentsColor = "#000000";
            }

            if (!Settings.Default.StringsEnabled)
            {
                stringsColor = "#000000";
            }

            if (!Settings.Default.DirectivesEnabled)
            {
                directivesColor = "#000000";
            }

            if (!Settings.Default.PreProcessorEnabled)
            {
                preProcessorColor = "#000000";
            }

            if (!Settings.Default.OpcodesEnabled)
            {
                opcodesColor = "#000000";
            }

            if (!Settings.Default.RegistersEnabled)
            {
                registersColor = "#000000";
            }

            if (!Settings.Default.ConditionsEnabled)
            {
                conditionsColor = "#000000";
            }

            if (!Settings.Default.LabelsEnabled)
            {
                labelsColor = "#000000";
            }

            try
            {
                XmlWriterSettings writerSettings = new XmlWriterSettings
                {
                    Encoding = Encoding.UTF8
                };

                XmlWriter writer = XmlWriter.Create(FileLocations.DefaultHighlightingFile, writerSettings);
                writer.WriteStartDocument();
                writer.WriteComment("Z80 Asm syntax highlighting file");
                writer.WriteStartElement("SyntaxDefinition");
                writer.WriteAttributeString("name", "Z80 Assembly");
                writer.WriteAttributeString("extensions", String.Join(";", Extensions));
                writer.WriteStartElement("Environment");
                writer.WriteStartElement("Custom");
                writer.WriteAttributeString("name", "TypeReference");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", "#04ABAB");
                writer.WriteEndElement();

                writer.WriteStartElement("Custom");
                writer.WriteAttributeString("name", "UnknownEntity");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", "#AB0404");
                writer.WriteEndElement();

                writer.WriteStartElement("Default");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", "Black");
                writer.WriteAttributeString("bgcolor", "White");
                writer.WriteEndElement();

                writer.WriteStartElement("Selection");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", "White");
                writer.WriteAttributeString("bgcolor", "#316AC5");
                writer.WriteEndElement();

                writer.WriteStartElement("VRuler");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", "#F1EFE2");
                writer.WriteAttributeString("bgcolor", "White");
                writer.WriteEndElement();

                writer.WriteStartElement("InvalidLines");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", "Red");
                writer.WriteEndElement();

                writer.WriteStartElement("CaretMarker");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", "#FFFFCC");
                writer.WriteEndElement();

                writer.WriteStartElement("LineNumbers");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", "#ACA899");
                writer.WriteAttributeString("bgcolor", "White");
                writer.WriteEndElement();

                writer.WriteStartElement("FoldLine");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", "Gray");
                writer.WriteAttributeString("bgcolor", "Black");
                writer.WriteEndElement();

                writer.WriteStartElement("SelectedFoldLine");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", "Black");
                writer.WriteEndElement();

                writer.WriteStartElement("EOLMarkers");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", "#F1EFE2");
                writer.WriteAttributeString("bgcolor", "White");
                writer.WriteEndElement();

                writer.WriteStartElement("SpaceMarkers");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", "#F1EFE2");
                writer.WriteAttributeString("bgcolor", "White");
                writer.WriteEndElement();

                writer.WriteStartElement("TabMarkers");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", "#F1EFE2");
                writer.WriteAttributeString("bgcolor", "White");
                writer.WriteEndElement();

                writer.WriteStartElement("FirstWord");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", labelsColor);
                writer.WriteEndElement();

                writer.WriteEndElement(); // </environment>

                writer.WriteStartElement("Properties");
                writer.WriteStartElement("Property");
                writer.WriteAttributeString("name", "LineComment");
                writer.WriteAttributeString("value", ";");
                writer.WriteEndElement();
                writer.WriteEndElement();

                writer.WriteStartElement("Digits");
                writer.WriteAttributeString("name", "Digits");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("color", "DarkBlue");
                writer.WriteEndElement();

                writer.WriteStartElement("RuleSets");
                writer.WriteStartElement("RuleSet");
                writer.WriteAttributeString("ignorecase", "true");
                writer.WriteAttributeString("escapecharacter", "\\");

                writer.WriteElementString("Delimiters", "&<>~!%^*()-+=|\\/{}[]:;\"' ,	?");

                writer.WriteStartElement("Span");
                writer.WriteAttributeString("name", "DocLineComment");
                writer.WriteAttributeString("rule", "DocCommentSet");
                writer.WriteAttributeString("stopateol", "true");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", commentsColor);
                writer.WriteStartElement("Begin");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", "Gray");
                writer.WriteString("///@!/@");
                writer.WriteEndElement();
                writer.WriteEndElement();

                writer.WriteStartElement("Span");
                writer.WriteAttributeString("name", "LineComment");
                writer.WriteAttributeString("stopateol", "true");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", commentsColor);
                writer.WriteElementString("Begin", ";");
                writer.WriteEndElement();

                writer.WriteStartElement("Span");
                writer.WriteAttributeString("name", "BlockComment");
                writer.WriteAttributeString("stopateol", "false");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", blockCommentsColor);
                writer.WriteElementString("Begin", "#comment");
                writer.WriteElementString("End", "#endcomment");
                writer.WriteEndElement();

                writer.WriteStartElement("Span");
                writer.WriteAttributeString("name", "String");
                writer.WriteAttributeString("escapecharacter", "\\");
                writer.WriteAttributeString("stopateol", "true");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", stringsColor);
                writer.WriteElementString("Begin", "\"");
                writer.WriteElementString("End", "\"");
                writer.WriteEndElement();

                writer.WriteStartElement("Span");
                writer.WriteAttributeString("name", "Char");
                writer.WriteAttributeString("escapecharacter", "\\");
                writer.WriteAttributeString("stopateol", "true");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", stringsColor);
                writer.WriteElementString("Begin", "'");
                writer.WriteElementString("End", "'");
                writer.WriteEndElement();

                writer.WriteStartElement("MarkPrevious");
                writer.WriteAttributeString("bold", "true");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", "MidnightBlue");
                writer.WriteString("(");
                writer.WriteEndElement();

                writer.WriteStartElement("MarkPrevious");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", labelsColor);
                writer.WriteAttributeString("markmarker", "true");
                writer.WriteString(":");
                writer.WriteEndElement();

                writer.WriteStartElement("KeyWords");
                writer.WriteAttributeString("name", "Punctuation");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", "Black");

                foreach (string punc in Punctuation)
                {
                    writer.WriteStartElement("Key");
                    writer.WriteAttributeString("word", punc);
                    writer.WriteEndElement();
                }

                writer.WriteEndElement(); // </KeyWords>

                writer.WriteStartElement("KeyWords");
                writer.WriteAttributeString("name", "Registers");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", registersColor);
                foreach (string register in Registers)
                {
                    writer.WriteStartElement("Key");
                    writer.WriteAttributeString("word", register);
                    writer.WriteEndElement();
                }

                writer.WriteEndElement();

                writer.WriteStartElement("KeyWords");
                writer.WriteAttributeString("name", "Preprocessor");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", preProcessorColor);
                foreach (string pre in Preprocessor)
                {
                    writer.WriteStartElement("Key");
                    writer.WriteAttributeString("word", pre);
                    writer.WriteEndElement();
                }

                writer.WriteEndElement();

                writer.WriteStartElement("KeyWords");
                writer.WriteAttributeString("name", "Directives");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", directivesColor);
                foreach (string directive in Directives)
                {
                    writer.WriteStartElement("Key");
                    writer.WriteAttributeString("word", directive);
                    writer.WriteEndElement();
                }

                writer.WriteEndElement();

                writer.WriteStartElement("KeyWords");
                writer.WriteAttributeString("name", "Opcodes");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", opcodesColor);
                foreach (string opcode in Opcodes)
                {
                    writer.WriteStartElement("Key");
                    writer.WriteAttributeString("word", opcode);
                    writer.WriteEndElement();
                }

                writer.WriteEndElement();

                writer.WriteStartElement("KeyWords");
                writer.WriteAttributeString("name", "Conditions");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", conditionsColor);
                foreach (string condition in Conditions)
                {
                    writer.WriteStartElement("Key");
                    writer.WriteAttributeString("word", condition);
                    writer.WriteEndElement();
                }

                writer.WriteEndElement();
                writer.WriteEndElement(); // </ruleset>

                writer.WriteStartElement("RuleSet");
                writer.WriteAttributeString("name", "DocCommentSet");
                writer.WriteAttributeString("ignorecase", "false");
                writer.WriteElementString("Delimiters", "&<>~!@%^*()-+=|\\#/{}[]:;\"' ,	.?");
                writer.WriteStartElement("Span");
                writer.WriteAttributeString("name", "XmlTag");
                writer.WriteAttributeString("stopateol", "true");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", "SystemColors.WindowText");
                writer.WriteElementString("Begin", "<");
                writer.WriteElementString("End", ">");
                writer.WriteEndElement();

                writer.WriteStartElement("KeyWords");
                writer.WriteAttributeString("name", "ErrorWords");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", "SystemColors.WindowText");
                writer.WriteStartElement("Key");
                writer.WriteAttributeString("word", "TODO");
                writer.WriteEndElement();
                writer.WriteStartElement("Key");
                writer.WriteAttributeString("word", "FIXME");
                writer.WriteEndElement();
                writer.WriteEndElement();

                writer.WriteStartElement("KeyWords");
                writer.WriteAttributeString("name", "WarningWords");
                writer.WriteAttributeString("bold", "false");
                writer.WriteAttributeString("italic", "false");
                writer.WriteAttributeString("color", "SystemColors.WindowText");
                writer.WriteStartElement("Key");
                writer.WriteAttributeString("word", "HACK");
                writer.WriteEndElement();
                writer.WriteStartElement("Key");
                writer.WriteAttributeString("word", "UNDONE");
                writer.WriteEndElement();
                writer.WriteEndElement();

                writer.WriteEndElement(); // </RuleSet>
                writer.WriteEndElement(); // </RuleSets>
                writer.WriteEndElement(); // </SyntaxDefinition>
                writer.Flush();
                writer.Close();

                // Create new provider with the temp directory
                FileSyntaxModeProvider provider = new FileSyntaxModeProvider(Path.GetDirectoryName(FileLocations.DefaultHighlightingFile));

                // Attach to the text editor
                HighlightingManager.Manager.AddSyntaxModeFileProvider(provider);
            }
            catch (Exception ex)
            {
                DockingService.ShowError("Error creating highlighting file!", ex);
            }
            // we don't dispose the memory stream here, the HighlightingManager will be responsible

            if (string.IsNullOrEmpty(Settings.Default.ExternalHighlight))
            {
                return;
            }

            FileSyntaxModeProvider fileProvider = new FileSyntaxModeProvider(Path.GetDirectoryName(Settings.Default.ExternalHighlight));

            HighlightingManager.Manager.AddSyntaxModeFileProvider(fileProvider);
        }
コード例 #28
0
        public void DockingServiceConstructorTest()
        {
            DockingService target = new DockingService();

            Assert.Inconclusive("TODO: Implement code to verify target");
        }
コード例 #29
0
        private static void Main(string[] args)
        {
            try
            {
                if (Settings.Default.FirstRun)
                {
                    Settings.Default.Upgrade();
                    Settings.Default.FirstRun = false;
                    Settings.Default.Save();
                }
            }
            catch (ConfigurationErrorsException ex)
            {
                DockingService.ShowError("Error upgrading settings", ex);
            }

            Application.EnableVisualStyles();

            DockPanel          panel              = new WabbitcodeDockPanel();
            StatusStrip        statusBar          = new WabbitcodeStatusBar();
            ToolStripContainer toolStripContainer = new WabbitcodeToolStripContainer(statusBar, panel);

            Task.Factory.StartNew(() => InitializeDependencies(panel, statusBar, toolStripContainer), TaskCreationOptions.PreferFairness);
            Task.Factory.StartNew(() =>
            {
                FileLocations.InitDirs();
                FileLocations.InitFiles();
                HighlightingUtils.MakeHighlightingFile();
            });

            Task.Factory.StartNew(() =>
            {
                if (!UpdateService.CheckForUpdate())
                {
                    return;
                }

                var result = MessageBox.Show("New version available. Download now?", "Update Available", MessageBoxButtons.YesNo, MessageBoxIcon.None);
                if (result != DialogResult.Yes)
                {
                    return;
                }

                UpdateService.StartUpdater();
                Application.Exit();
            });

            int     numErrors = 0;
            AppBase appBase   = new AppBase(toolStripContainer);

#if !DEBUG
            try
            {
#endif
            appBase.Run(args);
#if !DEBUG
        }
        catch (Exception ex)
        {
            numErrors++;
            DockingService.ShowError("Unhandled exception occurred. Please report this to the developers", ex);
        }
#endif

            if (numErrors == 0)
            {
                return;
            }

            do
            {
                try
                {
                    appBase.DoEvents();
                }
                catch (Exception ex)
                {
                    numErrors++;
                    DockingService.ShowError("Unhandled exception occurred. Please report this to the developers", ex);
                }
            } while (numErrors < 5);
        }
コード例 #30
0
        private void okTemplate_Click(object sender, EventArgs e)
        {
            FilePath projectDir  = new FilePath(locTextBox.Text.Trim());
            string   projectName = nameTextBox.Text.Trim();
            var      listBox     = (ListBox)tabControl.SelectedTab.Controls["templatesBox"];

            if (listBox.SelectedItem == null)
            {
                DockingService.ShowError("You must select an output type for this project");
                _cancelQuit = true;
                return;
            }

            var    item      = (ProjectItemModel)listBox.SelectedItem;
            string outputExt = item.Ext;

            if (string.IsNullOrEmpty(projectDir))
            {
                DockingService.ShowError("Project directory cannot be empty. Please specify a path for your project");
                _cancelQuit = true;
                return;
            }

            if (string.IsNullOrEmpty(projectName))
            {
                DockingService.ShowError("Project name cannot be empty. Please enter a name for your project");
                _cancelQuit = true;
                return;
            }

            _cancelQuit = false;
            if (!projFromDirBox.Checked)
            {
                projectDir = projectDir.Combine(projectName);
            }

            string projectFile = Path.Combine(projectDir, projectName) + ".wcodeproj";

            if (!Directory.Exists(projectDir))
            {
                Directory.CreateDirectory(projectDir);
            }

            _projectService.CreateNewProject(new FilePath(projectFile), projectName);

            var folder = _projectService.Project.MainFolder;

            if (projFromDirBox.Checked)
            {
                GetFiles(projectDir, fileTypesBox.Text, ref folder);
            }
            else
            {
                FilePath mainFile = new FilePath(Path.Combine(projectDir, projectName + ".asm"));
                FilePath iconFile = new FilePath(Path.Combine(projectDir, "icon.bmp"));
                try
                {
                    File.Copy(item.File, mainFile);
                }
                catch (IOException ex)
                {
                    if (ex.Message.Contains("exists"))
                    {
                        if (MessageBox.Show("'" + projectName + ".asm'  already exists. Overwrite?", "Error", MessageBoxButtons.YesNo,
                                            MessageBoxIcon.None) == DialogResult.Yes)
                        {
                            File.Copy(item.File, mainFile, true);
                        }
                    }
                }

                try
                {
                    if (item.UsesIcon)
                    {
                        File.Copy(Path.Combine(FileLocations.TemplatesDir, "Icon.bmp"), iconFile);
                        _projectService.AddFile(folder, iconFile);
                    }
                }
                catch (IOException ex)
                {
                    Logger.Log("Icon already exists", ex);
                }

                _projectService.AddFile(folder, mainFile);
                AbstractUiAction.RunCommand(new OpenFileAction(mainFile));
            }

            _projectService.Project.IncludeDirs.Add(FileLocations.IncludesDir);
            var debugConfig   = _projectService.Project.BuildSystem.BuildConfigs.Single(c => c.Name == "Debug");
            var releaseConfig = _projectService.Project.BuildSystem.BuildConfigs.Single(c => c.Name == "Release");

            debugConfig.AddStep(new InternalBuildStep(0,
                                                      BuildStepType.All,
                                                      projectDir.Combine(projectName + ".asm"),
                                                      projectDir.Combine(projectName + outputExt)));
            releaseConfig.AddStep(new InternalBuildStep(0,
                                                        BuildStepType.Assemble,
                                                        projectDir.Combine(projectName + ".asm"),
                                                        projectDir.Combine(projectName + outputExt)));
            _projectService.SaveProject();
            Close();
        }