当前位置: 首页>>代码示例>>C#>>正文


C# TextEditor.GetLineText方法代码示例

本文整理汇总了C#中MonoDevelop.Ide.Gui.TextEditor.GetLineText方法的典型用法代码示例。如果您正苦于以下问题:C# TextEditor.GetLineText方法的具体用法?C# TextEditor.GetLineText怎么用?C# TextEditor.GetLineText使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在MonoDevelop.Ide.Gui.TextEditor的用法示例。


在下文中一共展示了TextEditor.GetLineText方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: AutoIndentLine

		/// <summary>
		/// Could be overwritten to define more complex indenting.
		/// </summary>
		protected virtual int AutoIndentLine (TextEditor d, int lineNumber, string indentString)
		{
			string indentation = lineNumber != 0 ? GetIndentation (d, lineNumber - 1) : "";
			
			if (indentation.Length > 0) {
				string newLineText = indentation + d.GetLineText (lineNumber).Trim ();
				d.ReplaceLine (lineNumber, newLineText);
			}
			
			return indentation.Length;
		}
开发者ID:transformersprimeabcxyz,项目名称:monodevelop-1,代码行数:14,代码来源:DefaultFormattingStrategy.cs

示例2: GetIndentation

		/// <summary>
		/// returns the whitespaces which are before a non white space character in the line
		/// as a string.
		/// </summary>
		protected string GetIndentation (TextEditor d, int lineNumber)
		{
			string lineText = d.GetLineText (lineNumber);
			StringBuilder whitespaces = new StringBuilder ();
			
			foreach (char ch in lineText) {
				if (! Char.IsWhiteSpace (ch))
					break;
				whitespaces.Append (ch);
			}
			
			return whitespaces.ToString ();
		}
开发者ID:transformersprimeabcxyz,项目名称:monodevelop-1,代码行数:17,代码来源:DefaultFormattingStrategy.cs

示例3: GenerateCompletionData

		ICompletionDataList GenerateCompletionData (CodeCompletionContext completionContext, PythonParsedDocument document, TextEditor editor, char completionChar)
		{
			if (document == null)
				return null;
			
			var triggerWord = GetTriggerWord (editor, completionContext);

			// Its annoying when the data is poped up during an assignment such as:
			// abc = _
			if (completionChar == '=' && String.IsNullOrEmpty (triggerWord))
				return null;

			var triggerLine = editor.GetLineText (completionContext.TriggerLine);

			// if completionChar is ' ' and it is not a known completion type
			// that we can handle, return as early as possible
			if (completionChar == ' ') {
				if (!triggerWord.Contains ('.') &&
				    !triggerLine.StartsWith ("class") &&
				    !triggerLine.StartsWith ("def") &&
				    !triggerLine.StartsWith ("from") &&
				    !triggerLine.StartsWith ("import"))
					return null;
			}
			
			// "self."
			if (document.Module != null && triggerWord.Equals ("self.")) {
				var klass = GetClass (document.Module, completionContext.TriggerLine);
				if (klass == null)
					return null; // nothing to complete, self not in a class
				return new CompletionDataList (SelfDotCompletionData (klass));
			}
			
			var inFrom = triggerLine.StartsWith ("from ");
			var inClass = triggerLine.StartsWith ("class ") || (triggerLine.StartsWith ("class") && completionChar == ' ');
			var inDef = triggerLine.StartsWith ("def ") || (triggerLine.StartsWith ("def") && completionChar == ' ');
			var parts = triggerLine.Split (' ');
			
			// "from blah "
			if (inFrom && parts.Length == 2 && parts [parts.Length-1].Trim ().Length > 0 && completionChar == ' ') {
				return new CompletionDataList (new CompletionData[] { new CompletionData ("import") });
			}
			// "from blah import "
			else if (inFrom && parts.Length > 2) {
				triggerWord = parts [1] + ".";
				return new CompletionDataList (
					from ParserItem item in m_site.Database.Find (triggerWord)
				    where !item.FullName.Substring (triggerWord.Length).Contains ('.')
					select CreateCompletionData (item, triggerWord))
					;
			}
			
			// if we are in a new class line and not to '(' yet
			// we cannot complete anything at this time, finish now
			if (inClass && parts.Length < 2)
				return null;
			
			// if we are in a new def line, the only time we can complete
			// is after an equal '='.  so ignore space trigger
			if (inDef && completionChar == ' ')
				return null;
			else if (inDef && completionChar == '=')
				triggerWord = "";
			
			if (inClass) {
				if (completionChar == '(')
					triggerWord = "";
				else
					triggerWord = triggerLine.Substring (triggerLine.LastIndexOf ('(') + 1);
			}
			
			// limit the depth of search to number of "." in trigger
			// "xml." has depth of 1 so anything matching ^xml. and no more . with match
			int depth = 0;
			foreach (var c in triggerWord)
				if (c == '.')
					depth++;
			
			// anything in the sqlite store
			if (!String.IsNullOrEmpty (triggerWord)) {
				// todo: try to complete on class/module/func/attr data
				
				return new CompletionDataList (
					from ParserItem item in m_site.Database.Find (triggerWord, ParserItemType.Any, depth)
					select CreateCompletionData (item, triggerWord))
					;
			}
			
			ParserItemType itemType = String.IsNullOrEmpty (triggerWord) ? ParserItemType.Module : ParserItemType.Any;
			
			return new CompletionDataList (
				from ParserItem item in m_site.Database.Find ("", itemType, depth)
				select CreateCompletionData (item, triggerWord))
				;
		}
开发者ID:transformersprimeabcxyz,项目名称:monodevelop-1,代码行数:95,代码来源:PythonEditorCompletion.cs

示例4: GetTriggerWord

		static string GetTriggerWord (TextEditor editor, CodeCompletionContext completionContext)
		{
			// Get the line of text for our current line
			// and trim off everything after the cursor
			var line = editor.GetLineText (completionContext.TriggerLine);
			line = line.Substring (0, completionContext.TriggerLineOffset - 1);
			
			// Walk backwards looking for split chars and then trim the
			// beginning of the line off
			for (int i = line.Length - 1; i >= 0; i--) {
				switch (line [i]) {
				case ' ':
				case '(':
				case '\t':
				case '=':
					return line.Substring (i + 1, line.Length - 1 - i);
				default:
					break;
				}
			}
			
			return line;
		}
开发者ID:transformersprimeabcxyz,项目名称:monodevelop-1,代码行数:23,代码来源:PythonEditorCompletion.cs

示例5: GetIndent

		// Snatched from DefaultFormattingStrategy
		private string GetIndent (TextEditor d, int lineNumber, int terminateIndex)
		{
			string lineText = d.GetLineText (lineNumber);
			if(terminateIndex > 0)
				lineText = lineText.Substring(0, terminateIndex);
			
			StringBuilder whitespaces = new StringBuilder ();
			
			foreach (char ch in lineText) {
				if (!char.IsWhiteSpace (ch))
					break;
				whitespaces.Append (ch);
			}
			
			return whitespaces.ToString ();
		}
开发者ID:transformersprimeabcxyz,项目名称:monodevelop-1,代码行数:17,代码来源:CTextEditorExtension.cs


注:本文中的MonoDevelop.Ide.Gui.TextEditor.GetLineText方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。