diff --git a/build.xml b/build.xml index 7334c5a..c3ba54e 100644 --- a/build.xml +++ b/build.xml @@ -9,6 +9,7 @@ + @@ -48,6 +49,9 @@ + + + @@ -89,6 +93,10 @@ + + + + @@ -98,7 +106,18 @@ - + + + + + + + + + + + @@ -116,7 +135,7 @@ tofile="${project.dest}/org/jetbrains/plugins/clojure/ClojureBundle.properties"/> - + + + + @@ -169,13 +191,13 @@ - + - + - - + + diff --git a/clojure-intellij-plugin.ipr b/clojure-intellij-plugin.ipr index a288d93..78795a7 100644 --- a/clojure-intellij-plugin.ipr +++ b/clojure-intellij-plugin.ipr @@ -321,6 +321,23 @@ + + + + + + + + + + + + + + + + + diff --git a/clojure-plugin.iml b/clojure-plugin.iml index 750e946..7e8374b 100644 --- a/clojure-plugin.iml +++ b/clojure-plugin.iml @@ -5,6 +5,12 @@ + + + + @@ -27,6 +33,8 @@ + + diff --git a/src/org/jetbrains/plugins/clojure/lexer/_ClojureLexer.java b/src/org/jetbrains/plugins/clojure/lexer/_ClojureLexer.java index 0985caa..624930a 100644 --- a/src/org/jetbrains/plugins/clojure/lexer/_ClojureLexer.java +++ b/src/org/jetbrains/plugins/clojure/lexer/_ClojureLexer.java @@ -1,4 +1,4 @@ -/* The following code was generated by JFlex 1.4.1 on 12/15/10 5:38 PM */ +/* The following code was generated by JFlex 1.4.1 on 12/15/10 7:01 PM */ /* * Copyright 2000-2009 Red Shark Technology @@ -27,7 +27,7 @@ /** * This class is a scanner generated by * JFlex 1.4.1 - * on 12/15/10 5:38 PM from the specification file + * on 12/15/10 7:01 PM from the specification file * src/org/jetbrains/plugins/clojure/lexer/clojure.flex */ public class _ClojureLexer implements ClojureTokenTypes, FlexLexer { diff --git a/src/org/jetbrains/plugins/clojure/parameterInfo/ClojureParameterInfoHandler.scala b/src/org/jetbrains/plugins/clojure/parameterInfo/ClojureParameterInfoHandler.scala new file mode 100644 index 0000000..4be0213 --- /dev/null +++ b/src/org/jetbrains/plugins/clojure/parameterInfo/ClojureParameterInfoHandler.scala @@ -0,0 +1,13 @@ +package org.jetbrains.plugins.clojure.parameterInfo + +import com.intellij.lang.parameterInfo.ParameterInfoHandlerWithTabActionSupport +import org.jetbrains.plugins.clojure.psi.api.ClList +import org.jetbrains.plugins.clojure.psi.api.symbols.ClSymbol + +/** + * @author ilyas + */ + +abstract class ClojureParameterInfoHandler extends ParameterInfoHandlerWithTabActionSupport[ClList, Any, ClSymbol] { + +} \ No newline at end of file diff --git a/src/org/jetbrains/plugins/clojure/psi/impl/symbols/SymbolUtils.java b/src/org/jetbrains/plugins/clojure/psi/impl/symbols/SymbolUtils.java deleted file mode 100644 index bd85756..0000000 --- a/src/org/jetbrains/plugins/clojure/psi/impl/symbols/SymbolUtils.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.jetbrains.plugins.clojure.psi.impl.symbols; - -import com.intellij.psi.PsiElement; -import com.intellij.psi.util.PsiTreeUtil; -import org.jetbrains.plugins.clojure.ClojureIcons; -import org.jetbrains.plugins.clojure.psi.api.ClList; -import org.jetbrains.plugins.clojure.psi.api.symbols.ClSymbol; - -import javax.swing.*; - -import static org.jetbrains.plugins.clojure.psi.impl.list.ListDeclarations.*; - -/** - * @author ilyas - */ -public class SymbolUtils { - - - public static Icon getIcon(ClSymbol symbol, int flags) { - final PsiElement parent = PsiTreeUtil.getParentOfType(symbol, ClList.class); - if (parent instanceof ClList) { - ClList list = (ClList) parent; - - // Functions and defs - if (symbol == list.getSecondNonLeafElement()) { - final PsiElement fst = list.getFirstNonLeafElement(); - if (fst instanceof ClSymbol) { - ClSymbol lstSym = (ClSymbol) fst; - final String nameString = lstSym.getNameString(); - - if (FN.equals(nameString)) return ClojureIcons.FUNCTION; - if (DEFN.equals(nameString) || DEFN_.equals(nameString)) return ClojureIcons.FUNCTION; - } - } - - - } - - return null; - } -} diff --git a/src/org/jetbrains/plugins/clojure/psi/impl/symbols/SymbolUtils.scala b/src/org/jetbrains/plugins/clojure/psi/impl/symbols/SymbolUtils.scala new file mode 100644 index 0000000..fffab07 --- /dev/null +++ b/src/org/jetbrains/plugins/clojure/psi/impl/symbols/SymbolUtils.scala @@ -0,0 +1,37 @@ +package org.jetbrains.plugins.clojure.psi.impl.symbols + +/** + * @author ilyas + */ + +import com.intellij.psi.util.PsiTreeUtil +import org.jetbrains.plugins.clojure.ClojureIcons +import org.jetbrains.plugins.clojure.psi.api.ClList +import org.jetbrains.plugins.clojure.psi.api.symbols.ClSymbol +import org.jetbrains.plugins.clojure.psi.impl.list.ListDeclarations + +import javax.swing._ + +/** + * @author ilyas + */ + +object SymbolUtils { + + def getIcon(symbol: ClSymbol, flags: Int): Icon = + PsiTreeUtil.getParentOfType(symbol, classOf[ClList]) match { + case list: ClList if symbol == list.getSecondNonLeafElement() => + list.getFirstNonLeafElement() match { + case lstSym: ClSymbol => { + lstSym.getNameString() match { + case ListDeclarations.FN => ClojureIcons.FUNCTION + case ListDeclarations.DEFN | ListDeclarations.DEFN_ => ClojureIcons.FUNCTION + case _ => null + } + } + case _ => null + } + case _ => null + } + +}