--- /dev/null
+/*
+ * Copyright 2000-2012 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.intellij.codeInsight.template.macro;
+
+import com.intellij.codeInsight.CodeInsightBundle;
+import com.intellij.codeInsight.template.*;
+import com.intellij.openapi.vfs.VirtualFile;
+import com.intellij.psi.PsiDocumentManager;
+import com.intellij.psi.PsiFile;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+/**
+ * @author Nikolay Matveev
+ */
+public class FileNameMacro extends Macro {
+
+ @Override
+ public String getName() {
+ return "fileName";
+ }
+
+ @Override
+ public String getPresentableName() {
+ return CodeInsightBundle.message("macro.file.name");
+ }
+
+ @Override
+ public Result calculateResult(@NotNull Expression[] params, ExpressionContext context) {
+ final PsiFile file = PsiDocumentManager.getInstance(context.getProject()).getPsiFile(context.getEditor().getDocument());
+ if (file != null) {
+ final VirtualFile virtualFile = file.getVirtualFile();
+ if (virtualFile != null) {
+ return calculateResult(virtualFile);
+ }
+ }
+ return null;
+ }
+
+ @Nullable
+ protected TextResult calculateResult(@NotNull VirtualFile virtualFile) {
+ return new TextResult(virtualFile.getName());
+ }
+}
--- /dev/null
+/*
+ * Copyright 2000-2012 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.intellij.codeInsight.template.macro;
+
+import com.intellij.codeInsight.CodeInsightBundle;
+import com.intellij.codeInsight.template.TextResult;
+import com.intellij.openapi.vfs.VirtualFile;
+import org.jetbrains.annotations.NotNull;
+
+/**
+ * @author Nikolay Matveev
+ */
+public class FileNameWithoutExtensionMacro extends FileNameMacro {
+
+ @Override
+ public String getName() {
+ return "fileNameWithoutExtension";
+ }
+
+ @Override
+ public String getPresentableName() {
+ return CodeInsightBundle.message("macro.file.name.without.extension");
+ }
+
+ @Override
+ protected TextResult calculateResult(@NotNull VirtualFile virtualFile) {
+ return new TextResult(virtualFile.getNameWithoutExtension());
+ }
+}
macro.suggest.variable.name=suggestVariableName()
macro.suggest.first.variable.name=suggestFirstVariableName()
macro.variable.of.type=variableOfType(Type)
+macro.file.name=fileName()
+macro.file.name.without.extension=fileNameWithoutExtension()
command.name.surround.with.runtime.cast=Surround with runtime cast
inspection.i18n.expression.is.invalid.error.message=The I18nized Expression template is not a valid expression
inspection.error.dialog.title=Error
<liveTemplateMacro implementation="com.intellij.codeInsight.template.macro.FirstWordMacro"/>
<liveTemplateMacro implementation="com.intellij.codeInsight.template.macro.ReplaceUnderscoresWithSpacesMacro"/>
<liveTemplateMacro implementation="com.intellij.codeInsight.template.macro.LineNumberMacro"/>
+ <liveTemplateMacro implementation="com.intellij.codeInsight.template.macro.FileNameMacro"/>
+ <liveTemplateMacro implementation="com.intellij.codeInsight.template.macro.FileNameWithoutExtensionMacro"/>
<liveTemplateMacro implementation="com.intellij.codeInsight.template.macro.ReplaceUnderscoresToCamelCaseMacro"/>
<liveTemplateMacro implementation="com.intellij.codeInsight.template.macro.CapitalizeAndUnderscoreMacro"/>