Пример #1
0
        public void ReloadDocument(Document doc, bool silent)
        {
            if (!silent)
            {
                OpenDocument(doc);
                ReadDocumentFile(sci, doc.FileInfo);
            }
            else
            {
                var sciDoc = ((TextDocument)doc).GetSciDocument();

                if (sci.GetCurrentDocument() == sciDoc)
                {
                    OpenDocument(doc);
                    ReadDocumentFile(sci, doc.FileInfo);
                }
                else
                {
                    using (var sciTemp = new BasicScintillaControl())
                    {
                        sciTemp.AttachDocument(sciDoc);
                        ReadDocumentFile(sciTemp, doc.FileInfo);
                    }
                }
            }

            doc.IsDirty = false;
        }
Пример #2
0
 TextLocation ITextEditor.GetLocationFromPosition(Document doc, int pos)
 {
     using (var sciTemp = new BasicScintillaControl())
     {
         sciTemp.AttachDocument(((TextDocument)doc).GetSciDocument());
         var line = sciTemp.GetLineFromPosition(pos);
         var col  = sciTemp.GetColumnFromPosition(pos);
         return(new TextLocation(line, col));
     }
 }
Пример #3
0
 private void ReadDocumentFile(BasicScintillaControl sci, FileInfo fileInfo)
 {
     if (fileInfo != null)
     {
         var src = App.GetService <IOutputInputService>().ReadFileAsString(fileInfo);
         sci.SetText(src);
         sci.ClearDirtyFlag();
         sci.EmptyUndoBuffer();
     }
     else
     {
         sci.Text = String.Empty;
     }
 }
Пример #4
0
 string ITextEditor.GetContent(Document doc, int lineNumber)
 {
     if (doc == App.Document())
     {
         return(sci.GetLine(lineNumber).Text);
     }
     else
     {
         using (var sciTemp = new BasicScintillaControl())
         {
             sciTemp.AttachDocument(((TextDocument)doc).GetSciDocument());
             return(sciTemp.GetLine(lineNumber).Text);
         }
     }
 }
Пример #5
0
 string ITextEditor.GetContent(Document doc, int start, int length)
 {
     if (doc == App.Document())
     {
         return(sci.GetTextRangeUnicode(start, start + length));
     }
     else
     {
         using (var sciTemp = new BasicScintillaControl())
         {
             sciTemp.AttachDocument(((TextDocument)doc).GetSciDocument());
             return(sciTemp.GetTextRangeUnicode(start, start + length));
         }
     }
 }
Пример #6
0
 void ITextEditor.SetContent(Document doc, string text)
 {
     if (doc == App.Document())
     {
         sci.SetText(text);
     }
     else
     {
         using (var sciTemp = new BasicScintillaControl())
         {
             sciTemp.AttachDocument(((TextDocument)doc).GetSciDocument());
             sciTemp.SetText(text);
         }
     }
 }
Пример #7
0
        private void InternalCompile(object obj)
        {
            var doc = (CodeDocument)obj;
            var src = String.Empty;

            sci.Invoke(() =>
            {
                using (var sciTemp = new BasicScintillaControl())
                {
                    sciTemp.AttachDocument(doc.GetSciDocument());
                    src = sciTemp.GetTextUnicode();
                }
            });

            if (!String.IsNullOrWhiteSpace(src))
            {
                var ret = default(Tuple <ICompiledUnit, IEnumerable <MessageItem> >);

                try
                {
                    ret = compiler.Compile(doc, src);
                }
                catch { }

                if (ret != null)
                {
                    doc.Unit = ret.Item1;

                    if (service.HighlightErrors)
                    {
                        doc.Messages = ret.Item2;
                        sci.Invoke(() => app.GetService <IOutlinerService>().Outline(doc));
                    }
                    else
                    {
                        doc.Messages = null;
                    }

                    doc.UnitVersion = doc.Version;
                }
            }

            Thread.Sleep(1000);
            thread = null;
        }
Пример #8
0
        private void InternalCompile(object obj)
        {
            var doc = (CodeDocument)obj;
            var src = String.Empty;

            sci.Invoke(() =>
            {
                using (var sciTemp = new BasicScintillaControl())
                {
                    sciTemp.AttachDocument(doc.GetSciDocument());
                    src = sciTemp.GetTextUnicode();
                }
            });

            if (!String.IsNullOrWhiteSpace(src))
            {
                var ret = default(Tuple<ICompiledUnit, IEnumerable<MessageItem>>);

                try
                {
                    ret = compiler.Compile(doc, src);
                }
                catch { }

                if (ret != null)
                {
                    doc.Unit = ret.Item1;

                    if (service.HighlightErrors)
                    {
                        doc.Messages = ret.Item2;
                        sci.Invoke(() => app.GetService<IOutlinerService>().Outline(doc));
                    }
                    else
                        doc.Messages = null;

                    doc.UnitVersion = doc.Version;
                }
            }

            Thread.Sleep(1000);
            thread = null;
        }
Пример #9
0
 public SearchManager(string textDocument)
 {
     this.textDocument = textDocument;
     this.scintilla = new BasicScintillaControl();
     this.scintilla.SetText(textDocument);
 }