diff --git a/idea/src/META-INF/plugin.xml b/idea/src/META-INF/plugin.xml
index 23022d47218..6fd690eba51 100644
--- a/idea/src/META-INF/plugin.xml
+++ b/idea/src/META-INF/plugin.xml
@@ -24,11 +24,6 @@
-
-
-
-
diff --git a/idea/src/org/jetbrains/jet/plugin/actions/ShiftAction.java b/idea/src/org/jetbrains/jet/plugin/actions/ShiftAction.java
deleted file mode 100644
index 569694ddc53..00000000000
--- a/idea/src/org/jetbrains/jet/plugin/actions/ShiftAction.java
+++ /dev/null
@@ -1,352 +0,0 @@
-package org.jetbrains.jet.plugin.actions;
-
-import com.google.common.collect.Lists;
-import com.intellij.lang.ASTNode;
-import com.intellij.openapi.actionSystem.AnAction;
-import com.intellij.openapi.actionSystem.AnActionEvent;
-import com.intellij.openapi.actionSystem.LangDataKeys;
-import com.intellij.openapi.actionSystem.PlatformDataKeys;
-import com.intellij.openapi.application.ApplicationManager;
-import com.intellij.openapi.editor.Editor;
-import com.intellij.openapi.project.Project;
-import com.intellij.openapi.util.TextRange;
-import com.intellij.openapi.util.io.FileUtil;
-import com.intellij.psi.PsiFile;
-import com.intellij.psi.tree.IElementType;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.jet.checkers.CheckerTestUtil;
-import org.jetbrains.jet.lang.diagnostics.Diagnostic;
-import org.jetbrains.jet.lang.diagnostics.DiagnosticFactory;
-import org.jetbrains.jet.lang.diagnostics.Severity;
-import org.jetbrains.jet.lang.psi.*;
-
-import java.io.File;
-import java.io.FileReader;
-import java.util.Collection;
-import java.util.List;
-
-import static org.jetbrains.jet.lexer.JetTokens.*;
-
-/**
- * @author abreslav
- */
-public class ShiftAction extends AnAction {
- @Override
- public void actionPerformed(AnActionEvent e) {
- Editor editor = e.getData(PlatformDataKeys.EDITOR);
- PsiFile psiFile = e.getData(LangDataKeys.PSI_FILE);
- assert editor != null && psiFile != null;
-
-// BindingContext bindingContext = WholeProjectAnalyzerFacade.analyzeProjectWithCacheOnAFile((JetFile) psiFile);
-// List syntaxError = AnalyzingUtils.getSyntaxErrorRanges(psiFile);
-//
-// String result = CheckerTestUtil.addDiagnosticMarkersToText(psiFile, bindingContext, syntaxError).toString();
-//
-// Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
-// clipboard.setContents(new StringSelection(result), new ClipboardOwner() {
-// @Override
-// public void lostOwnership(Clipboard clipboard, Transferable contents) {}
-// });
-// final JetFile file = JetPsiFactory.createFile(psiFile.getProject(), "namespace foo\nclass A");
- Project project = psiFile.getProject();
-
- File rootDir = new File("/Users/abreslav/work/jet-clean/compiler/testData/diagnostics/tests");
- assert rootDir.exists() : "Root dir does not exist";
-
- System.out.println("Shift started");
- transformDir(project, rootDir);
- System.out.println("Shift done");
- }
-
- private void transformDir(Project project, File rootDir) {
- assert rootDir.isDirectory();
- println("----------------------------------------------");
- println("Directory: ", rootDir.getAbsolutePath());
- println("----------------------------------------------");
- for (final File file : rootDir.listFiles()) {
- if (file.getName().endsWith(".kt") || file.getName().endsWith(".jet.jet")) {
- file.delete();
- }
- }
-
- for (File file : rootDir.listFiles()) {
- if (file.isDirectory()) continue;
- if (!file.getName().endsWith(".jet")) continue;
- transformFile(project, file);
- }
- for (File file : rootDir.listFiles()) {
- if (!file.isDirectory()) continue;
- transformDir(project, file);
- }
- println("----------------------------------------------");
- println("----------------------------------------------");
- println("----------------------------------------------");
- }
-
- private static void transformFile(Project project, File file) {
- println("File name: ", file.getAbsolutePath());
- println("==============================================================");
- System.out.flush();
- try {
- String text = FileUtil.loadTextAndClose(new FileReader(file));
- List result = Lists.newArrayList();
-
- String clearText = CheckerTestUtil.parseDiagnosedRanges(text, result);
-
- final JetFile jetFile = JetPsiFactory.createFile(project, clearText);
- ApplicationManager.getApplication().runWriteAction(new Runnable() {
- @Override
- public void run() {
- convert(jetFile);
- }
- });
- Collection diagnostics = Lists.newArrayList();
-
- for (CheckerTestUtil.DiagnosedRange diagnosedRange : result) {
- for (String message : diagnosedRange.getDiagnostics()) {
- diagnostics.add(new MyDiagnostic(message, new MyDF(message), new TextRange(diagnosedRange.getStart(), diagnosedRange.getEnd()), jetFile));
- }
- }
-
- String textWithDiagnosticsBack = CheckerTestUtil.addDiagnosticMarkersToText(jetFile, diagnostics).toString();
- StringBuilder finalText = new StringBuilder();
- for (int i = 0; i < textWithDiagnosticsBack.length(); i++) {
- char c = textWithDiagnosticsBack.charAt(i);
- switch (c) {
- case 'Я':
- break;
- case 'Ц':
- finalText.append("->");
- break;
- case 'Щ':
- finalText.append("#(");
- break;
- case 'Ф':
- if ("ФАН".equals(textWithDiagnosticsBack.substring(i, i + 3))) {
- i += 2;
- while (i < textWithDiagnosticsBack.length() && textWithDiagnosticsBack.charAt(i) == ' ') {
- i++;
- }
- }
- break;
- default:
- finalText.append(c);
- }
- }
- File newFile = new File(file.getAbsoluteFile().getParent(), file.getName() + ".kt");
- FileUtil.writeToFile(newFile, finalText.toString());
- String message = "newFile = " + newFile;
- println(message);
- } catch (Throwable e1) {
- System.err.println(file.getAbsolutePath());
- e1.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
- System.err.flush();
- }
- println("==============================================================");
- }
-
- private static void convert(JetFile file) {
- file.getRootNamespace().accept(new JetTreeVisitor() {
-
- private void replaceWithLeaf(@NotNull ASTNode toReplace, IElementType type, String text) {
- ASTNode treeNext = toReplace.getTreeNext();
- ASTNode treeParent = toReplace.getTreeParent();
- treeParent.removeChild(toReplace);
- treeParent.addLeaf(type, text, treeNext);
- }
-
- // namespace -> package
- @Override
- public Void visitNamespace(JetNamespace namespace, Void data) {
- ASTNode namespaceNode = namespace.getHeader().getNode();
- ASTNode token = namespaceNode.findChildByType(NAMESPACE_KEYWORD);
- if (token != null) {
-// ASTNode packageKeyword = JetPsiFactory.createFile(namespace.getProject(), "package foo").getRootNamespace().getHeader().getNode().findChildByType(NAMESPACE_KEYWORD);
- replaceWithLeaf(token, NAMESPACE_KEYWORD, "packageЯЯ");
- }
- return super.visitNamespace(namespace, data);
- }
-
- // function types
- @Override
- public Void visitFunctionType(JetFunctionType type, Void data) {
- ASTNode node = type.getNode();
- ASTNode funToken = node.findChildByType(FUN_KEYWORD);
- replaceWithLeaf(funToken, WHITE_SPACE, "ФАН");
-
-// node.removeChild(funToken);
- ASTNode colonToken = node.findChildByType(COLON);
- if (colonToken != null) {
-// JetBinaryExpression arrowExpression = (JetBinaryExpression) JetPsiFactory.createExpression(type.getProject(), "a -> b");
-// ASTNode childByType = arrowExpression.getOperationReference().getNode().findChildByType(JetTokens.ARROW);
- replaceWithLeaf(colonToken, WHITE_SPACE, "Ц"); // arrow
- }
- return super.visitFunctionType(type, data);
- }
-
- // function literals => ->>> ->
- @Override
- public Void visitFunctionLiteralExpression(JetFunctionLiteralExpression expression, Void data) {
- ASTNode arrowNode = expression.getFunctionLiteral().getArrowNode();
- if (arrowNode != null) {
- replaceWithLeaf(arrowNode, ARROW, "->");
- }
- return super.visitFunctionLiteralExpression(expression, data);
- }
-
- // when entry => ->>> ->
- @Override
- public Void visitWhenEntry(JetWhenEntry jetWhenEntry, Void data) {
- ASTNode arrow = jetWhenEntry.getNode().findChildByType(DOUBLE_ARROW);
- if (arrow == null) {
- System.err.println(jetWhenEntry.getText());
- }
- else {
- replaceWithLeaf(arrow, ARROW, "->");
- }
- return super.visitWhenEntry(jetWhenEntry, data);
- }
-
- // tuple expressions #()
- @Override
- public Void visitTupleExpression(JetTupleExpression expression, Void data) {
- replaceWithLeaf(expression.getNode().getFirstChildNode(), LPAR, "Щ"); // LPAR
- return super.visitTupleExpression(expression, data);
- }
-
- // typle types #()
- @Override
- public Void visitTupleType(JetTupleType type, Void data) {
- replaceWithLeaf(type.getNode().getFirstChildNode(), LPAR, "Щ"); // LPAR
- return super.visitTupleType(type, data);
- }
-
- // tuple patterns #()
- @Override
- public Void visitTuplePattern(JetTuplePattern pattern, Void data) {
- replaceWithLeaf(pattern.getNode().getFirstChildNode(), LPAR, "Щ"); // LPAR
- return super.visitTuplePattern(pattern, data);
- }
-
- // decomposer patterns remove '@'
- @Override
- public Void visitDecomposerPattern(JetDecomposerPattern pattern, Void data) {
- replaceWithLeaf(pattern.getNode().findChildByType(AT), WHITE_SPACE, "Я"); // LPAR
- return super.visitDecomposerPattern(pattern, data);
- }
-
-
- }, null);
- }
-
- @Override
- public void update(AnActionEvent e) {
- Editor editor = e.getData(PlatformDataKeys.EDITOR);
- PsiFile psiFile = e.getData(LangDataKeys.PSI_FILE);
- e.getPresentation().setEnabled(editor != null && psiFile instanceof JetFile && ApplicationManager.getApplication().isInternal());
- }
-
- private static class MyDiagnostic implements Diagnostic {
-
- private final String message;
- private final DiagnosticFactory factory;
- private final TextRange range;
- private final PsiFile file;
-
- private MyDiagnostic(String message, DiagnosticFactory factory, TextRange range, PsiFile file) {
- this.message = message;
- this.factory = factory;
- this.range = range;
- this.file = file;
- }
-
- public PsiFile getFile() {
- return file;
- }
-
- @NotNull
- @Override
- public DiagnosticFactory getFactory() {
- return factory;
- }
-
- @NotNull
- @Override
- public String getMessage() {
- return message;
- }
-
- public TextRange getRange() {
- return range;
- }
-
- @NotNull
- @Override
- public Severity getSeverity() {
- return Severity.ERROR;
- }
- }
-
- private static class MyDF implements DiagnosticFactory {
-
- private String name;
-
- private MyDF(String name) {
- this.name = name;
- }
-
- @NotNull
- @Override
- public TextRange getTextRange(@NotNull Diagnostic diagnostic) {
- return ((MyDiagnostic) diagnostic).getRange();
- }
-
- @NotNull
- @Override
- public PsiFile getPsiFile(@NotNull Diagnostic diagnostic) {
- return ((MyDiagnostic) diagnostic).getFile();
- }
-
- @NotNull
- @Override
- public String getName() {
- return name;
- }
- }
-
- private static boolean printingOn() {
- return false;
-// return true;
- }
-
- private static void print(Object message) {
- if (printingOn()) {
- System.out.print(message);
- }
- }
-
- private static void println() {
- if (printingOn()) {
- System.out.println();
- }
- }
-
- private static void println(Object message) {
- print(message);
- println();
- }
-
- private static void println(Object message1, Object message2) {
- print(message1.toString() + message2);
- println();
- }
-
- private static void println(Object... message) {
- for (Object m : message) {
- print(m);
- }
- println();
- }
-
-
-}