Example #1
0
        public void CompileFile(CodeProject project, CodeFile file)
        {
            Compiler.Instance.ApplyErrorsToRecent();
            _errorsListView.ClearAllErrors();
            //_errorsListView.ErrorsListContainter.Clear();

            if (file == null || project == null || project.Files == null)
            {
                return;
            }

            // Тупо компилируем все файлы, какие есть
            foreach (CodeFile _file in project.Files)
            {
                if (_file.ErrorsList != null)
                {
                    _file.ErrorsList.Clear();
                }
            }

            file.Compile();
            _errorsListView.AddErrorsCollection(file.ErrorsList);

            // Чтобы подсветить выделить ошибки
            _codeEditorView.Redraw();

            Logger.LogWithBinding("Status_File_Compiled");
        }
Example #2
0
        private void OnNewProjectCommand(object sender, ExecutedRoutedEventArgs e)
        {
            NewProjectWindow newProjectWindow = new NewProjectWindow()
            {
                Owner = this
            };

            newProjectWindow.ShowDialog();

            if (newProjectWindow.DialogResult.HasValue && newProjectWindow.DialogResult.Value)
            {
                // Закрыть предыдущий
                codeEditor.CloseAllTabs();
                CodeProjectManager.Instance.CloseCurrent();

                // Открыть новый
                string name = newProjectWindow.textBox1.Text;
                string path = newProjectWindow.comboBox2.Text;

                // Создаем директорию под него
                Directory.CreateDirectory(System.IO.Path.Combine(path, name));
                string fileName = System.IO.Path.Combine(path, name, name + CodeProject.DefaultExtension);


                // Создаем новый
                CodeProjectManager.Instance.Current = CodeProject.MakeNew(fileName);

                // Сразу добавим новый файл
                OnAddNewFileCommand(sender, e);
            }
        }
Example #3
0
        public static CodeProject Load(string fileName)
        {
            CodeProject project = new CodeProject(fileName);

            project.LoadXML();


            AddToRecentProjects(project);
            return(project);
        }
Example #4
0
        public static CodeProject MakeNew(string fileName)
        {
            CodeProject project = new CodeProject(fileName);

            AddToRecentProjects(project);

            project.WorkDirs.Add(System.IO.Path.GetDirectoryName(project.Path)); // По умолчанию, папка в которой проект - перваый рабочий каталог
            project.Save();

            return(project);
        }
        }                                                // Для обновления имени

        private void CurrentProjectChanged(object sender, CurrentProjectChangedArgs propertyChangedEventChangedArgs)
        {
            // Отписаться от предыдущего
            if (propertyChangedEventChangedArgs.Old != null)
            {
                propertyChangedEventChangedArgs.Old.Files.CollectionChanged -= ProjectChanged;
            }

            Current = propertyChangedEventChangedArgs.New;

            // Подписаться на новый
            if (propertyChangedEventChangedArgs.New != null)
            {
                propertyChangedEventChangedArgs.New.Files.CollectionChanged += ProjectChanged;
            }

            UpdateTree();
        }
Example #6
0
        private static void AddToRecentProjects(CodeProject project)
        {
            var recent = IDEState.Get().RecentProjects;

            // Проверить, есть ли уже такой, удалить если есть (потом все равно добавим)
            if (recent.IndexOf(project.Path) != -1)
            {
                recent.Remove(project.Path);
            }

            // Delete last
            while (recent.Count >= 10)
            {
                recent.RemoveAt(recent.Count - 1);
            }

            // Добавляем в начало
            recent.Insert(0, project.Path);
        }
Example #7
0
        public void Load(string path)
        {
            try
            {
                // Закрыть предыдущий
                if (Current != null)
                {
                    CloseCurrent();
                }

                // Открыть новый
                Current = CodeProject.Load(path);

                // Поставить фокус на проджект эксплорер
                //_mainWindowView.ActivateProjectExplorer();

                Logger.LogWithBinding("Status_ProjectOpened");
            }
            catch (ParsingProjectException ex)
            {
                ErrorWindow err = new ErrorWindow
                {
                    ShortDesc = LocalString.Get("Error_OpenProject_short"),
                    FullDesc  = LocalString.Get("Error_OpenProject_full"),
                    Exception = ex
                };
                err.ShowDialog();
            }
            catch (FileNotFoundException ex)
            {
                ErrorWindow err = new ErrorWindow
                {
                    ShortDesc = LocalString.Get("Error_OpenProject_short"),
                    FullDesc  = LocalString.Get("Error_OpenProject_full"),
                    Exception = ex
                };
                err.ShowDialog();
            }
        }
Example #8
0
        public void CloseCurrent()
        {
            try
            {
                if (Current != null)
                {
                    Current.Close();
                    Current = null;

                    Logger.LogWithBinding("Status_ProjectClosed");
                }
            }
            catch (SaveProjectException ex)
            {
                ErrorWindow err = new ErrorWindow
                {
                    ShortDesc = LocalString.Get("Error_CloseProject_short"),
                    FullDesc  = LocalString.Get("Error_CloseProject_full"),
                    Exception = ex
                };
                err.ShowDialog();
            }
        }
Example #9
0
 protected override string GetPreview(string path)
 {
     return(CodeProject.GetPreview(path));
 }
Example #10
0
 public CurrentProjectChangedArgs(CodeProject oldProject, CodeProject newProject)
 {
     Old = oldProject;
     New = newProject;
 }