This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 267915
Collapse All | Expand All

(-)a/java.completion/nbproject/project.properties (-1 / +1 lines)
Lines 38-44 Link Here
38
is.autoload=true
38
is.autoload=true
39
javac.source=1.7
39
javac.source=1.7
40
javac.compilerargs=-Xlint -Xlint:-serial
40
javac.compilerargs=-Xlint -Xlint:-serial
41
spec.version.base=1.7.0
41
spec.version.base=1.6.0
42
#test configs
42
#test configs
43
43
44
test.config.jet-main.includes=\
44
test.config.jet-main.includes=\
(-)a/java.completion/src/org/netbeans/modules/java/completion/BaseTask.java (-3 / +28 lines)
Lines 79-96 Link Here
79
79
80
    protected final int caretOffset;
80
    protected final int caretOffset;
81
    protected final Callable<Boolean> cancel;
81
    protected final Callable<Boolean> cancel;
82
    private int caretInSnapshot;
82
83
83
    protected BaseTask(int caretOffset, Callable<Boolean> cancel) {
84
    protected BaseTask(int caretOffset, Callable<Boolean> cancel) {
84
        this.caretOffset = caretOffset;
85
        this.caretOffset = caretOffset;
85
        this.cancel = cancel;
86
        this.cancel = cancel;
86
    }
87
    }
88
    
89
    final int getCaretInSnapshot() {
90
        return caretInSnapshot;
91
    }
92
    
93
    private CompilationController controller;
94
    
95
    final int snapshotPos(int pos) {
96
        if (pos < 0) {
97
            return pos;
98
        }
99
        int r = controller.getSnapshot().getEmbeddedOffset(pos);
100
        if (r == -1) {
101
            return pos;
102
        } else {
103
            return r;
104
        }
105
    }
87
106
88
    @Override
107
    @Override
89
    public void run(ResultIterator resultIterator) throws Exception {
108
    public void run(ResultIterator resultIterator) throws Exception {
90
        Parser.Result result = resultIterator.getParserResult(caretOffset);
109
        Parser.Result result = resultIterator.getParserResult(caretOffset);
91
        CompilationController controller = result != null ? CompilationController.get(result) : null;
110
        CompilationController controller = result != null ? CompilationController.get(result) : null;
92
        if (controller != null && (cancel == null || !cancel.call())) {
111
        if (controller != null && (cancel == null || !cancel.call())) {
93
            resolve(controller);
112
            try {
113
                this.controller = controller;
114
                caretInSnapshot = snapshotPos(caretOffset);
115
                resolve(controller);
116
            } finally {
117
                this.controller = null;
118
            }
94
        }
119
        }
95
    }
120
    }
96
121
Lines 365-372 Link Here
365
                    if (blockPath.getParentPath().getLeaf().getKind() == Tree.Kind.METHOD
390
                    if (blockPath.getParentPath().getLeaf().getKind() == Tree.Kind.METHOD
366
                            || TreeUtilities.CLASS_TREE_KINDS.contains(blockPath.getParentPath().getLeaf().getKind())) {
391
                            || TreeUtilities.CLASS_TREE_KINDS.contains(blockPath.getParentPath().getLeaf().getKind())) {
367
                        final int blockPos = (int) sourcePositions.getStartPosition(root, blockPath.getLeaf());
392
                        final int blockPos = (int) sourcePositions.getStartPosition(root, blockPath.getLeaf());
368
                        final String blockText = upToOffset && caretOffset > offset
393
                        final String blockText = upToOffset && getCaretInSnapshot() > offset
369
                                ? controller.getText().substring(blockPos, offset) + whitespaceString(caretOffset - offset) + controller.getText().substring(caretOffset, (int) sourcePositions.getEndPosition(root, blockPath.getLeaf()))
394
                                ? controller.getText().substring(blockPos, offset) + whitespaceString(getCaretInSnapshot() - offset) + controller.getText().substring(getCaretInSnapshot(), (int) sourcePositions.getEndPosition(root, blockPath.getLeaf()))
370
                                : controller.getText().substring(blockPos, (int) sourcePositions.getEndPosition(root, blockPath.getLeaf()));
395
                                : controller.getText().substring(blockPos, (int) sourcePositions.getEndPosition(root, blockPath.getLeaf()));
371
                        final SourcePositions[] sp = new SourcePositions[1];
396
                        final SourcePositions[] sp = new SourcePositions[1];
372
                        final StatementTree block = (((BlockTree) blockPath.getLeaf()).isStatic() ? tu.parseStaticBlock(blockText, sp) : tu.parseStatement(blockText, sp));
397
                        final StatementTree block = (((BlockTree) blockPath.getLeaf()).isStatic() ? tu.parseStaticBlock(blockText, sp) : tu.parseStatement(blockText, sp));
(-)a/java.completion/src/org/netbeans/modules/java/completion/JavaCompletionTask.java (-4 / +4 lines)
Lines 4241-4259 Link Here
4241
        int nextMemberPos = (int) Diagnostic.NOPOS;
4241
        int nextMemberPos = (int) Diagnostic.NOPOS;
4242
        for (Tree member : cls.getMembers()) {
4242
        for (Tree member : cls.getMembers()) {
4243
            int pos = (int) sourcePositions.getStartPosition(root, member);
4243
            int pos = (int) sourcePositions.getStartPosition(root, member);
4244
            if (pos >= caretOffset) {
4244
            if (pos >= getCaretInSnapshot()) {
4245
                nextMemberPos = pos;
4245
                nextMemberPos = pos;
4246
                break;
4246
                break;
4247
            }
4247
            }
4248
            pos = (int) sourcePositions.getEndPosition(root, member);
4248
            pos = (int) sourcePositions.getEndPosition(root, member);
4249
            if (caretOffset < pos) {
4249
            if (getCaretInSnapshot() < pos) {
4250
                currentMember = member;
4250
                currentMember = member;
4251
                nextMemberPos = pos;
4251
                nextMemberPos = pos;
4252
                break;
4252
                break;
4253
            }
4253
            }
4254
        }
4254
        }
4255
        if (nextMemberPos > caretOffset) {
4255
        if (nextMemberPos > getCaretInSnapshot()) {
4256
            String text = controller.getText().substring(caretOffset, nextMemberPos);
4256
            String text = controller.getText().substring(getCaretInSnapshot(), nextMemberPos);
4257
            int idx = text.indexOf('\n'); // NOI18N
4257
            int idx = text.indexOf('\n'); // NOI18N
4258
            if (idx >= 0) {
4258
            if (idx >= 0) {
4259
                text = text.substring(0, idx);
4259
                text = text.substring(0, idx);

Return to bug 267915