aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Scripting/Tango.Scripting.Editors/Indentation/IIndentationStrategy.cs
blob: 0697fb6421ae342bed5587c69cc88b2e2b302b60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)

using Tango.Scripting.Editors.Document;
using System;

namespace Tango.Scripting.Editors.Indentation
{
	/// <summary>
	/// Strategy how the text editor handles indentation when new lines are inserted.
	/// </summary>
	public interface IIndentationStrategy
	{
		/// <summary>
		/// Sets the indentation for the specified line.
		/// Usually this is constructed from the indentation of the previous line.
		/// </summary>
		void IndentLine(TextDocument document, DocumentLine line);
		
		/// <summary>
		/// Reindents a set of lines.
		/// </summary>
		void IndentLines(TextDocument document, int beginLine, int endLine);
	}
}
ass="c1">/// Is called immediately before a document line is removed. /// </summary> void BeforeRemoveLine(DocumentLine line); // /// <summary> // /// Is called immediately after a document line is removed. // /// </summary> // void AfterRemoveLine(DocumentLine line); /// <summary> /// Is called immediately before a document line changes length. /// This method will be called whenever the line is changed, even when the length stays as it is. /// The method might be called multiple times for a single line because /// a replacement is internally handled as removal followed by insertion. /// </summary> void SetLineLength(DocumentLine line, int newTotalLength); /// <summary> /// Is called immediately after a line was inserted. /// </summary> /// <param name="newLine">The new line</param> /// <param name="insertionPos">The existing line before the new line</param> void LineInserted(DocumentLine insertionPos, DocumentLine newLine); /// <summary> /// Indicates that there were changes to the document that the line tracker was not notified of. /// The document is in a consistent state (but the line trackers aren't), and line trackers should /// throw away their data and rebuild the document. /// </summary> void RebuildDocument(); } }