本文整理汇总了C#中Mono.TextEditor.TextDocument类的典型用法代码示例。如果您正苦于以下问题:C# TextDocument类的具体用法?C# TextDocument怎么用?C# TextDocument使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
TextDocument类属于Mono.TextEditor命名空间,在下文中一共展示了TextDocument类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: InvalidMimeTypeInScriptTypeAttribute
public void InvalidMimeTypeInScriptTypeAttribute ()
{
var doc = new TextDocument ();
var syntaxMode = new WebFormsSyntaxMode ();
syntaxMode.Document = doc;
doc.Text =
@"<%@ Page Language=""C#"" Inherits=""AspnetTest.Default"" %>
<!DOCTYPE html>
<html>
<head runat=""server"">
<title>Default</title>
</head>
<body>
<form id=""form1"" runat=""server"">
<asp:Button id=""button1"" runat=""server"" Text=""Click me!"" OnClick=""button1Clicked"" />
</form>
<script type=""></script>
</body>
</html>
";
var style = new ColorScheme ();
foreach (DocumentLine line in doc.Lines) {
Assert.DoesNotThrow (() => syntaxMode.GetChunks (style, line, line.Offset, line.Length).ToList ());
}
}
示例2: CompareWindow
/// <summary>
/// Initializes a new instance of the <see cref="Trilogic.CompareWindow"/> class.
/// </summary>
/// <param name="parent">The parent window.</param>
/// <param name="compareName">Compare name.</param>
/// <param name="fileSide">File side.</param>
/// <param name="databaseSide">Database side.</param>
public CompareWindow(MainWindow parent, string compareName, SchemaData fileSide, SchemaData databaseSide)
: base(Gtk.WindowType.Toplevel)
{
this.Build();
this.parent = parent;
this.docLocal = new TextDocument();
this.docDB = new TextDocument();
this.editorLocal = new TextEditor(this.docLocal);
this.editorDB = new TextEditor(this.docDB);
Gtk.ScrolledWindow scrollLocal = new Gtk.ScrolledWindow();
Gtk.ScrolledWindow scrollDB = new Gtk.ScrolledWindow();
scrollLocal.Add(this.editorLocal);
scrollDB.Add(this.editorDB);
this.hbox1.Add(scrollDB);
this.hbox1.Add(scrollLocal);
Gtk.Box.BoxChild childLocal = (Gtk.Box.BoxChild)this.hbox1[scrollLocal];
childLocal.Position = 2;
Gtk.Box.BoxChild childDB = (Gtk.Box.BoxChild)this.hbox1[scrollDB];
childDB.Position = 0;
this.ShowAll();
this.Title += " - " + compareName;
this.fileSide = fileSide;
this.databaseSide = databaseSide;
this.ShowSchema();
}
示例3: Run
protected override void Run (object dataItem)
{
base.Run (dataItem);
if (IdeApp.Workspace == null) return;
if (IdeApp.Workbench.ActiveDocument == null || IdeApp.Workbench.ActiveDocument.FileName == FilePath.Null) return;
var document = IdeApp.Workbench.ActiveDocument;
ResolveResult resolveResult = null;
object item = CurrentRefactoryOperationsHandler.GetItem (document, out resolveResult);
IMethod method = item as IMethod;
if (method == null)
return;
ISearchProgressMonitor monitor = IdeApp.Workbench.ProgressMonitors.GetSearchProgressMonitor(true, true);
ThreadPool.QueueUserWorkItem((data) =>
{
try
{
ImplementationsFinder.Find(method, implementation =>
{
FileProvider fileProvider = new FileProvider(implementation.Region.FileName);
TextDocument doc = new TextDocument();
doc.Text = fileProvider.ReadString();
int offset = doc.LocationToOffset(implementation.Region.BeginLine, implementation.Region.BeginColumn);
while ((offset + implementation.Name.Length) < doc.TextLength)
{
if (doc.GetTextAt(offset, implementation.Name.Length) == implementation.Name)
{
break;
}
offset++;
}
monitor.ReportResult (new MonoDevelop.Ide.FindInFiles.SearchResult(fileProvider, offset, implementation.Name.Length));
});
}
catch (Exception exception)
{
if (monitor != null)
{
monitor.ReportError("Error finding references", exception);
}
else
{
LoggingService.LogError("Error finding references", exception);
}
}
finally
{
if (monitor != null)
{
monitor.Dispose();
}
}
});
}
示例4: SourceEditorPrintOperation
public SourceEditorPrintOperation (TextDocument doc, FilePath filename)
{
this.doc = doc;
this.filename = filename;
this.settings = SourceEditorPrintSettings.Load ();
this.Unit = Unit.Mm;
}
示例5: GetPrevOffset
static int GetPrevOffset (TextDocument document, int lineNumber)
{
int startLineNumber = lineNumber - 1;
if (startLineNumber < 0)
startLineNumber = document.TextLength - 1;
var line = document.GetLinesReverseStartingAt (startLineNumber - 1).FirstOrDefault (l => l.IsBookmarked);
return line != null ? line.Offset : -1;
}
示例6: GetNextOffset
static int GetNextOffset (TextDocument document, int lineNumber)
{
int startLineNumber = lineNumber + 1;
if (startLineNumber > document.TextLength)
startLineNumber = 0;
var line = document.GetLinesStartingAt (startLineNumber).FirstOrDefault (l => l.IsBookmarked);
return line != null ? line.Offset : -1;
}
示例7: GetList
static List<string> GetList (TextDocument document, string name)
{
var mode = document.SyntaxMode as SyntaxMode;
if (mode != null) {
if (mode.Properties.ContainsKey(name))
return mode.Properties[name];
}
return new List<string> ();
}
示例8: UrlMarker
public UrlMarker (TextDocument doc, DocumentLine line, string url, UrlType urlType, string style, int startColumn, int endColumn)
{
this.doc = doc;
this.line = line;
this.url = url;
this.urlType = urlType;
this.style = style;
this.startColumn = startColumn;
this.endColumn = endColumn;
doc.LineChanged += HandleDocLineChanged;
}
示例9: StartsWithListMember
static int StartsWithListMember (TextDocument document, List<string> list, int offset)
{
for (int i = 0; i < list.Count; i++) {
string item = list[i];
if (offset + item.Length < document.TextLength) {
if (document.GetTextAt (offset, item.Length) == item)
return i;
}
}
return -1;
}
示例10: TextDocumentWrapper
public TextDocumentWrapper (TextDocument document)
{
if (document == null)
throw new ArgumentNullException (nameof (document));
this.document = document;
this.document.TextReplaced += HandleTextReplaced;
this.document.TextReplacing += HandleTextReplacing;
this.document.LineChanged += Document_LineChanged;
this.document.LineInserted += Document_LineInserted;
this.document.LineRemoved += Document_LineRemoved;
}
示例11: MatchingBracketTests
public void MatchingBracketTests (string text, int offset, int expectedOffsetMatch)
{
var editor = TextEditorFactory.CreateNewEditor ();
editor.MimeType = "text/x-csharp";
editor.Text = text;
var document = new TextDocument (text);
int actualOffset = SimpleBracketMatcher.GetMatchingBracketOffset (editor, offset);
int actualOffset2 = document.GetMatchingBracketOffset (offset);
Assert.AreEqual (actualOffset2, actualOffset);
Assert.AreEqual (expectedOffsetMatch, actualOffset);
}
示例12: FindPrevWordOffset
int FindPrevWordOffset (TextDocument doc, int offset, bool subword)
{
int lineNumber = doc.OffsetToLineNumber (offset);
DocumentLine line = doc.GetLine (lineNumber);
if (line == null)
return offset;
int result = offset;
if (result == line.Offset) {
line = doc.GetLine (lineNumber - 1);
if (line != null)
result = line.Offset + line.Length;
return result;
}
CharacterClass current = GetCharacterClass (doc.GetCharAt (result - 1), subword, false);
if (current == CharacterClass.Whitespace && result - 1 > line.Offset) {
result--;
current = GetCharacterClass (doc.GetCharAt (result - 2), subword, false);
}
while (result > line.Offset) {
CharacterClass prev = GetCharacterClass (doc.GetCharAt (result - 1), subword, false);
if (prev != current) {
// camelCase and PascalCase handling
bool camelSkip = false;
if (prev == CharacterClass.UppercaseLetter && current == CharacterClass.LowercaseLetter) {
if (result-2 > line.Offset) {
CharacterClass back2 = GetCharacterClass (doc.GetCharAt (result-2), subword, false);
if (back2 == CharacterClass.UppercaseLetter)
result--;
else
camelSkip = true;
}
}
if (!camelSkip)
break;
}
current = prev;
result--;
}
return result;
}
示例13: JaySyntaxMode
public JaySyntaxMode (TextDocument doc) : base (doc)
{
ResourceXmlProvider provider = new ResourceXmlProvider (typeof(IXmlProvider).Assembly, typeof(IXmlProvider).Assembly.GetManifestResourceNames ().First (s => s.Contains ("JaySyntaxMode")));
using (XmlReader reader = provider.Open ()) {
SyntaxMode baseMode = SyntaxMode.Read (reader);
this.rules = new List<Rule> (baseMode.Rules);
this.keywords = new List<Keywords> (baseMode.Keywords);
this.spans = new List<Span> (baseMode.Spans).ToArray ();
this.matches = baseMode.Matches;
this.prevMarker = baseMode.PrevMarker;
this.SemanticRules = new List<SemanticRule> (baseMode.SemanticRules);
this.keywordTable = baseMode.keywordTable;
this.keywordTableIgnoreCase = baseMode.keywordTableIgnoreCase;
this.properties = baseMode.Properties;
}
}
示例14: FindNextWordOffset
int FindNextWordOffset (TextDocument doc, int offset, bool subword)
{
int lineNumber = doc.OffsetToLineNumber (offset);
DocumentLine line = doc.GetLine (lineNumber);
if (line == null)
return offset;
int result = offset;
int endOffset = line.Offset + line.Length;
if (result == endOffset) {
line = doc.GetLine (lineNumber + 1);
if (line != null)
result = line.Offset;
return result;
}
CharacterClass current = GetCharacterClass (doc.GetCharAt (result), subword, false);
while (result < endOffset) {
CharacterClass next = GetCharacterClass (doc.GetCharAt (result), subword, false);
if (next != current) {
// camelCase and PascalCase handling
bool camelSkip = false;
if (next == CharacterClass.LowercaseLetter && current == CharacterClass.UppercaseLetter) {
if (result-2 > line.Offset) {
CharacterClass previous = GetCharacterClass (doc.GetCharAt (result-2), subword, false);
if (previous == CharacterClass.UppercaseLetter && result-2 > offset)
result--;
else
camelSkip = true;
}
}
if (!camelSkip)
break;
}
current = next;
result++;
}
while (result < endOffset && GetCharacterClass (doc.GetCharAt (result), subword, false) == CharacterClass.Whitespace) {
result++;
}
return result;
}
示例15: FindNextWordOffset
int FindNextWordOffset (TextDocument doc, int offset, bool subword)
{
if (offset + 1 >= doc.TextLength)
return doc.TextLength;
int result = offset + 1;
CC previous = SW.GetCharacterClass (doc.GetCharAt (result), subword, includeUnderscore);
bool inIndentifier = previous != CC.Unknown && previous != CC.Whitespace;
while (result < doc.TextLength) {
char ch = doc.GetCharAt (result);
CC current = SW.GetCharacterClass (ch, subword, includeUnderscore);
//camelCase / PascalCase splitting
if (subword) {
if (current == CC.Digit && (previous != CC.Digit || (result-1 == offset && !Char.IsDigit (doc.GetCharAt (result-1))))) {
break;
} else if (previous == CC.Digit && current != CC.Digit) {
break;
} else if (current == CC.UppercaseLetter && previous != CC.UppercaseLetter) {
break;
} else if (current == CC.LowercaseLetter && previous == CC.UppercaseLetter && result - 2 > 0
&& SW.GetCharacterClass (doc.GetCharAt (result - 2), subword, includeUnderscore) != CC.LowercaseLetter)
{
result--;
break;
}
}
//else break at end of identifiers
if (previous != CC.Unknown && previous != CC.Whitespace) {
inIndentifier = true;
} else if (inIndentifier) {
result--;
break;
}
previous = current;
result++;
}
foreach (FoldSegment segment in doc.GetFoldingsFromOffset (result)) {
if (segment.IsFolded)
result = System.Math.Max (result, segment.EndLine.Offset + segment.EndColumn);
}
return result;
}