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


C# ScintillaNet.LineScroll方法代码示例

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


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

示例1: GotoPosAndFocus

		private void GotoPosAndFocus(ScintillaNet.ScintillaControl sci, int position)
		{
			// don't correct to multi-byte safe position (assumed correct)
			sci.GotoPos(position);
			int line = sci.LineFromPosition(position);
			// TODO  The folding makes the line centering fail - solution: expand all folds / make it smarter.
			//sci.EnsureVisible(line);
			sci.ExpandAllFolds();
			int top = sci.FirstVisibleLine;
			int middle = top + sci.LinesOnScreen/2;
			sci.LineScroll(0, line-middle);
			((Control)sci).Focus();
		}
开发者ID:heon21st,项目名称:flashdevelop,代码行数:13,代码来源:PluginUI.cs

示例2: CodeAutoOnChar

		/// <summary>
		/// Some characters can fire code generation
		/// </summary>
		/// <param name="sci">Scintilla control</param>
		/// <param name="value">Character</param>
		/// <returns>Code was generated</returns>
		static private bool CodeAutoOnChar(ScintillaNet.ScintillaControl sci, int value)
		{
			if (!ASContext.AutoImportsEnabled) 
				return false;
			
			int position = sci.CurrentPos;
			
			if (value == '*' && position > 1 && sci.CharAt(position-2) == '.' && LastExpression != null)
			{
				// context
				string key = LastExpression.Keyword;
				if (key != null && (key == "import" || key == "extends" || key == "implements" || key == "package"))
					return false;
				
				ASResult context = EvalExpression(LastExpression.Value, LastExpression, ASContext.CurrentClass, true);
				if (context.IsNull() || context.Class.Flags != FlagType.Package)
					return false;
				
				string package = LastExpression.Value;
				int startPos = LastExpression.Position;
				string check = "";
				char c;
				while (startPos > LastExpression.PositionExpression && check.Length <= package.Length && check != package)
				{
					c = (char)sci.CharAt(--startPos);
					if (c > 32) check = c+check;
				}
				if (check != package)
					return false;
				
				// insert import
				string statement = "import "+package+"*;"+ASContext.MainForm.GetNewLineMarker(sci.EOLMode);
				int endPos = sci.CurrentPos;
				int line = 0;
				int curLine = sci.LineFromPosition(position);
				int firstLine = 0;
				bool found = false;
				string txt;
				Match mImport;
				while (line < curLine)
				{
					txt = sci.GetLine(line++).TrimStart();
					// HACK  insert imports after AS3 package declaration
					if (txt.StartsWith("package"))
					{
						statement = '\t'+statement;
						firstLine = (txt.IndexOf('{') < 0) ? line+1 : line;
					}
					else if (txt.StartsWith("import")) 
					{
						found = true;
						// insérer dans l'ordre alphabetique
						mImport = ASClassParser.re_import.Match(txt);
						if (mImport.Success && 
						    String.Compare(mImport.Groups["package"].Value, package) > 0)
						{
							line--;
							break;
						}
					}
					else if (found)  {
						line--;
						break;
					}
				}
				if (line == curLine) line = firstLine;
				position = sci.PositionFromLine(line);
				line = sci.FirstVisibleLine;
				sci.SetSel(position, position);
				sci.ReplaceSel(statement);
				
				// prepare insertion of the term as usual
				startPos += statement.Length;
				endPos += statement.Length;
				sci.SetSel(startPos, endPos);
				sci.ReplaceSel("");
				sci.LineScroll(0, line-sci.FirstVisibleLine+1);
				
				// create classes list
				ASClass cClass = ASContext.CurrentClass;
				ArrayList list = new ArrayList();
				foreach(ASMember import in cClass.Imports)
				if (import.Type.StartsWith(package))
					list.Add(new MemberItem(import));
				CompletionList.Show(list, false);
				return true;
			}
			return false;
		}
开发者ID:heon21st,项目名称:flashdevelop,代码行数:95,代码来源:ASComplete.cs


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