Mercurial > projects > dwt-addons
diff dwtx/jface/text/source/ICharacterPairMatcher.d @ 129:eb30df5ca28b
Added JFace Text sources
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Sat, 23 Aug 2008 19:10:48 +0200 |
parents | |
children | c4fb132a086c |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dwtx/jface/text/source/ICharacterPairMatcher.d Sat Aug 23 19:10:48 2008 +0200 @@ -0,0 +1,76 @@ +/******************************************************************************* + * Copyright (c) 2000, 2005 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + * Port to the D programming language: + * Frank Benoit <benoit@tionex.de> + *******************************************************************************/ +module dwtx.jface.text.source.ICharacterPairMatcher; + +import dwt.dwthelper.utils; + +import dwtx.jface.text.IDocument; +import dwtx.jface.text.IRegion; + +/** + * A character pair matcher finds to a character at a certain document offset + * the matching peer character. It is the matchers responsibility to define the + * concepts of "matching" and "peer". The matching process starts at a given + * offset. Starting of this offset, the matcher chooses a character close to + * this offset. The anchor defines whether the chosen character is left or right + * of the initial offset. The matcher then searches for the matching peer + * character of the chosen character and if it finds one, delivers the minimal + * region of the document that contains both characters. + * + * @since 2.1 + */ +public interface ICharacterPairMatcher { + + /** + * Indicates the anchor value "right". + */ + int RIGHT= 0; + /** + * Indicates the anchor value "left". + */ + int LEFT= 1; + + + /** + * Disposes this pair matcher. + */ + void dispose(); + + /** + * Clears this pair matcher. I.e. the matcher throws away all state it might + * remember and prepares itself for a new call of the <code>match</code> + * method. + */ + void clear(); + + /** + * Starting at the given offset, the matcher chooses a character close to this offset. + * The matcher then searches for the matching peer character of the chosen character + * and if it finds one, returns the minimal region of the document that contains both characters. + * It returns <code>null</code> if there is no peer character. + * + * @param iDocument the document to work on + * @param i the start offset + * @return the minimal region containing the peer characters + */ + IRegion match(IDocument iDocument, int i); + + /** + * Returns the anchor for the region of the matching peer characters. The anchor + * says whether the character that has been chosen to search for its peer character + * has been left or right of the initial offset. + * + * @return <code>RIGHT</code> or <code>LEFT</code> + */ + int getAnchor(); +}