Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CDoubleClickSelector.java')
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CDoubleClickSelector.java213
1 files changed, 0 insertions, 213 deletions
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CDoubleClickSelector.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CDoubleClickSelector.java
deleted file mode 100644
index 0ea6dd1075d..00000000000
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CDoubleClickSelector.java
+++ /dev/null
@@ -1,213 +0,0 @@
-package org.eclipse.cdt.internal.ui.text;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2001.
- * All Rights Reserved.
- */
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextDoubleClickStrategy;
-import org.eclipse.jface.text.ITextViewer;
-
-/**
- * Double click strategy aware of C identifier syntax rules.
- */
-public class CDoubleClickSelector implements ITextDoubleClickStrategy {
-
- protected ITextViewer fText;
- protected int fPos;
- protected int fStartPos;
- protected int fEndPos;
-
-
- protected static char[] fgBrackets= {'{', '}', '(', ')', '[', ']', '"', '"'};
-
- public CDoubleClickSelector() {
- super();
- }
-
-
- /**
- * @see ITextDoubleClickStrategy#doubleClicked
- */
- public void doubleClicked(ITextViewer text) {
- fPos= text.getSelectedRange().x;
-
-
- if (fPos < 0)
- return;
-
-
- fText= text;
-
-
- if (!selectBracketBlock())
- selectWord();
- }
-
-
- protected boolean matchBracketsAt() {
- char prevChar, nextChar;
-
-
- int i;
- int bracketIndex1= fgBrackets.length;
- int bracketIndex2= fgBrackets.length;
-
-
- fStartPos= -1;
- fEndPos= -1;
-
- // get the chars preceding and following the start position
- try {
- IDocument doc= fText.getDocument();
-
-
- prevChar= doc.getChar(fPos - 1);
- nextChar= doc.getChar(fPos);
-
-
- // is the char either an open or close bracket?
- for (i= 0; i < fgBrackets.length; i= i + 2) {
- if (prevChar == fgBrackets[i]) {
- fStartPos= fPos - 1;
- bracketIndex1= i;
- }
- }
- for (i= 1; i < fgBrackets.length; i= i + 2) {
- if (nextChar == fgBrackets[i]) {
- fEndPos= fPos;
- bracketIndex2= i;
- }
- }
-
-
- if (fStartPos > -1 && bracketIndex1 < bracketIndex2) {
- fEndPos= searchForClosingBracket(fStartPos, prevChar, fgBrackets[bracketIndex1 + 1], doc);
- if (fEndPos > -1)
- return true;
- else
- fStartPos= -1;
- } else if (fEndPos > -1) {
- fStartPos= searchForOpenBracket(fEndPos, fgBrackets[bracketIndex2 - 1], nextChar, doc);
- if (fStartPos > -1)
- return true;
- else
- fEndPos= -1;
- }
- } catch (BadLocationException x) {
- }
-
-
- return false;
- }
-
-
- protected boolean matchWord() {
- IDocument doc= fText.getDocument();
- try {
- int pos= fPos;
- char c;
-
-
- while (pos >= 0) {
- c= doc.getChar(pos);
- if (!Character.isJavaIdentifierPart(c))
- break;
- --pos;
- }
- fStartPos= pos;
-
-
- pos= fPos;
- int length= doc.getLength();
-
-
- while (pos < length) {
- c= doc.getChar(pos);
- if (!Character.isJavaIdentifierPart(c))
- break;
- ++pos;
- }
- fEndPos= pos;
-
-
- return true;
-
-
- } catch (BadLocationException x) {
- }
- return false;
- }
-
-
- protected int searchForClosingBracket(int startPos, char openBracket, char closeBracket, IDocument doc) throws BadLocationException {
- int stack= 1;
- int closePos= startPos + 1;
- int length= doc.getLength();
- char nextChar;
-
-
- while (closePos < length && stack > 0) {
- nextChar= doc.getChar(closePos);
- if (nextChar == openBracket && nextChar != closeBracket)
- stack++;
- else if (nextChar == closeBracket)
- stack--;
- closePos++;
- }
-
-
- if (stack == 0)
- return closePos - 1;
- else
- return -1;
- }
-
-
- protected int searchForOpenBracket(int startPos, char openBracket, char closeBracket, IDocument doc) throws BadLocationException {
- int stack= 1;
- int openPos= startPos - 1;
- char nextChar;
-
- while (openPos >= 0 && stack > 0) {
- nextChar= doc.getChar(openPos);
- if (nextChar == closeBracket && nextChar != openBracket)
- stack++;
- else if (nextChar == openBracket)
- stack--;
- openPos--;
- }
-
-
- if (stack == 0)
- return openPos + 1;
- else
- return -1;
- }
-
-
- protected boolean selectBracketBlock() {
- if (matchBracketsAt()) {
- if (fStartPos == fEndPos)
- fText.setSelectedRange(fStartPos, 0);
- else
- fText.setSelectedRange(fStartPos + 1, fEndPos - fStartPos - 1);
-
-
- return true;
- }
- return false;
- }
-
-
- protected void selectWord() {
- if (matchWord()) {
- if (fStartPos == fEndPos)
- fText.setSelectedRange(fStartPos, 0);
- else
- fText.setSelectedRange(fStartPos + 1, fEndPos - fStartPos - 1);
- }
- }
-}

Back to the top