update copyright
[fedora-idea.git] / java / java-impl / src / com / intellij / codeInsight / editorActions / smartEnter / MissingArrayInitializerBraceFixer.java
blob7d74c46cb3257bc0343ecf6e81b32e5be6b7f330
1 /*
2 * Copyright 2000-2009 JetBrains s.r.o.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package com.intellij.codeInsight.editorActions.smartEnter;
18 import com.intellij.openapi.editor.Document;
19 import com.intellij.openapi.editor.Editor;
20 import com.intellij.openapi.util.TextRange;
21 import com.intellij.psi.PsiArrayInitializerExpression;
22 import com.intellij.psi.PsiElement;
23 import com.intellij.util.IncorrectOperationException;
25 /**
26 * Created by IntelliJ IDEA.
27 * User: max
28 * Date: Sep 5, 2003
29 * Time: 7:24:03 PM
30 * To change this template use Options | File Templates.
32 public class MissingArrayInitializerBraceFixer implements Fixer {
33 public void apply(Editor editor, JavaSmartEnterProcessor processor, PsiElement psiElement) throws IncorrectOperationException {
34 if (!(psiElement instanceof PsiArrayInitializerExpression)) return;
35 PsiArrayInitializerExpression expr = (PsiArrayInitializerExpression)psiElement;
36 final Document doc = editor.getDocument();
37 final String exprText = expr.getText();
38 final TextRange textRange = expr.getTextRange();
39 final int endOffset = textRange.getEndOffset();
40 int caretOffset = editor.getCaretModel().getOffset();
41 final int startOffset = textRange.getStartOffset();
42 if (caretOffset > startOffset && caretOffset < endOffset) {
43 final int index = exprText.indexOf('\n', caretOffset - startOffset);
44 if (index >= 0) {
45 doc.insertString(index + startOffset, "}");
46 return;
49 if (!exprText.endsWith("}")) {
50 doc.insertString(endOffset, "}");