| /******************************************************************************* |
| * Copyright (c) 2005, 2007 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 |
| * |
| |
| *******************************************************************************/ |
| package org.eclipse.dltk.internal.codeassist; |
| |
| /** |
| * Internal completion context |
| */ |
| public class InternalCompletionContext { |
| |
| protected int tokenStart = -1; |
| protected int tokenEnd = -1; |
| protected char[] token = null; |
| protected int tokenKind; |
| |
| public void setTokenRange(int start, int end) { |
| this.setTokenRange(start, end, -1); |
| } |
| |
| protected void setTokenRange(int start, int end, int endOfEmptyToken) { |
| this.tokenStart = start; |
| this.tokenEnd = endOfEmptyToken > end ? endOfEmptyToken : end; |
| |
| // Work around for bug 132558 |
| // (https://bugs.eclipse.org/bugs/show_bug.cgi?id=132558). |
| // completionLocation can be -1 if the completion occur at the start of |
| // a file or |
| // the start of a code snippet but this API isn't design to support |
| // negative position. |
| if (this.tokenEnd == -1) { |
| this.tokenEnd = 0; |
| } |
| } |
| |
| protected void setToken(char[] token) { |
| this.token = token; |
| } |
| |
| public void setTokenKind(int tokenKind) { |
| this.tokenKind = tokenKind; |
| } |
| } |