org.eclipse.jface.text.source.ICharacterPairMatcher Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of spotless-ext-greclipse Show documentation
Show all versions of spotless-ext-greclipse Show documentation
Groovy Eclipse's formatter bundled for Spotless
The newest version!
/*******************************************************************************
* Copyright (c) 2000, 2012 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
*******************************************************************************/
package org.eclipse.jface.text.source;
import org.eclipse.jface.text.IDocument;
import org.eclipse.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.
*
*
* In order to provide backward compatibility for clients of ICharacterPairMatcher
,
* extension interfaces are used to provide a means of evolution. The following extension interface
* exists:
*
* - {@link org.eclipse.jface.text.source.ICharacterPairMatcherExtension} since version 3.8
* introducing the concept of matching peer character and enclosing peer characters for a given
* selection.
*
*
*
* Clients may implement this interface and its extension interface or use the default
* implementation provided by DefaultCharacterPairMatcher
.
*
*
* @see org.eclipse.jface.text.source.ICharacterPairMatcherExtension
* @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 match
* 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.
*
*
* Since version 3.8 the recommended way for finding matching peers is to use
* {@link org.eclipse.jface.text.source.ICharacterPairMatcherExtension#match(IDocument, int, int)}
* .
*
*
* @param document the document to work on
* @param offset the start offset
* @return the minimal region containing the peer characters or null
if there is no
* peer character.
*/
IRegion match(IDocument document, int offset);
/**
* 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 the left or the
* right character of the pair.
*
* @return RIGHT
or LEFT
*/
int getAnchor();
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy