GithubHelp home page GithubHelp logo

kropp / intellij-makefile Goto Github PK

View Code? Open in Web Editor NEW
165.0 9.0 29.0 1.33 MB

Makefile support for IntelliJ-based IDEs

Home Page: https://victor.kropp.name/projects/makefile/

License: MIT License

Lex 3.62% Kotlin 96.38%
intellij kotlin intellij-plugin ide makefile make

intellij-makefile's People

Contributors

andreif avatar duemir avatar kropp avatar langergabrielle avatar nishigori avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

intellij-makefile's Issues

Error: NoClassDefFoundError

I have a Makefile and Vim plugin. Intelijj Info:

IntelliJ IDEA 2017.1.4
Build #IU-171.4694.23, built on June 6, 2017
JRE: 1.8.0_112-release-736-b21 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 4.11.6-1-ARCH

Steps to reproduce:

  1. Went to edit a Makefile
  2. Navigated my cursor the the correct line
  3. Typed "A" (Vim insert at end of line)
  4. And Intelijj errored

Unable to edit any text in the Makefile. I tried opening and closing the file several times. I am however able to edit other files.

Stack trace

incorrect parse error reported on \

 all:: runecho
 runecho: ; \
 echo "hi"

The error is
<command>, <conditional>, <include>, <topconditional>, EOL, '\t', comment, define, export, identifier, override, private, undefine or vpath expected, got '\ '

No support for Make syntax

Please fix the plugin to correctly highlight Makefile like this:

include config.inc.sh

SHELL := /bin/bash
ROUTE_TEST_TMP_FILE := $(shell mktemp)
PARALLEL = parallel --no-notice

nightly/full: nightly/_all  | nightly
	touch $@

clean:
ifeq ($(BUILD_TYPE),QA)
	python make.py --clean data/area_of_interest.poly
else
	rm -rf dependencies
endif

fdw:
	python tools/configure_mysql_fdw.py \
		--foreign_port 13306 

Add ANSI support when running targets

For example, when I execute codeception through the makefile, I have a weird output like

image

But running the same target through the bash extension, it's working fine

image

Here how I configured the bash run extension to execute a makefile target

image

Should not be able to click and run .PHONY

The clickable targets feature in 0.9 is great! Thanks for the hard work on this. I noticed that I can also click and run .PHONY targets, which are not actually targets.

screen shot 2017-02-01 at 20 27 09

Explanation of PHONY if you haven't used it before.

Also big thanks for the hard tabs fix! This plugin is getting better all the time!

Conditional blocks dont support targets

Got some bugs with ifndef block

  1. Plugin marks .SILENT and correspondingly endif as errors, that blocks IDE support of any code bellow this condition. Tested with ifeq - got same error (<conditional>,comment,else, endif or line expected, got '.SILENT')
ifndef VERBOSE
.SILENT:
endif
  1. Moving ifndef block with variable definition to the start/middle/end of my Makefile resulted in errors whenever a target is defined before block. (<conditional>,comment,else, endif or line expected, got 'ZZZZ')
default: build run

ifndef VERBOSE
ZZZZ = asdasda
endif

Target-specific variable syntax error

Hey,

Thanks for the plugin! Much appreciated!
One minor issue though. Target-specific variable assignment shows syntax error.
In this Makefile:

test: export PYTHONPATH=$(PACKAGE_DIR)
test: testbuild build
	@py.test -vv --basetemp=$(TEST_DATA_DIR) $(TEST_CODE_DIR)

The '=' on the first line causes syntax error:
';', EOL, comment, identifier, split or '|' expected, got '='
screenshot_2017-01-18_10-55-47

ifdef not properly recognized

target:
ifdef VARIABLE_NAME
	cmd
else
	else-cmd
endif

The ifdef will not be recognized as keyword and the subsequent line’s tab indention is marked as error with the message:

':' or identifier expected, got ''

Analysis Error: got ' \' on variable declaration at first line

Thanks you creating so cool plugin :)

Following Makefile is occurred analysis error, but It is no problem writing on GNU Make.

# ↓ occurred 
FAIL_VAL    = \
  xxxxxx

NO_FAIL_VAL = xxx \
  xxxxxx

Screenshot of analysis bar

2017-03-13 1 38 24

About exected on my environment

IntelliJ IDEA 2016.3.5
Build #IU-163.13906.18, built on March 6, 2017

JRE: 1.8.0_112-release-408-b6 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o

I tried to report on problems first (sorry, I cannot write the JVM language ...

Patter targets not supported

Let me reuse the example from issue #13 and 14. The Makefile can be improved even further utiiizing Pattern Targets

The plugin marks test-foo and test-bar as unresolved.

all: test-foo test-bar

test-%:
	@echo "$*"

EA-98225

Cannot rename class com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference from class com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReferenceSet to wrapper: Manipulator for this element is not defined: MakefilePrerequisiteImpl(PREREQUISITE); class name.kropp.intellij.makefile.psi.impl.MakefilePrerequisiteImpl

com.intellij.util.IncorrectOperationException: Manipulator for this element is not defined: MakefilePrerequisiteImpl(PREREQUISITE); class name.kropp.intellij.makefile.psi.impl.MakefilePrerequisiteImpl
at com.intellij.psi.impl.source.resolve.reference.impl.CachingReference.getManipulator(CachingReference.java:53)
at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.rename(FileReference.java:522)
at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.bindToElement(FileReference.java:467)
at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.bindToElement(FileReference.java:515)
at com.intellij.refactoring.rename.RenameUtil.doRenameGenericNamedElement(RenameUtil.java:245)
at com.intellij.refactoring.rename.RenamePsiElementProcessor.renameElement(RenamePsiElementProcessor.java:60)
at com.intellij.refactoring.rename.RenameUtil.doRename(RenameUtil.java:187)
at com.intellij.refactoring.rename.RenameProcessor.performRefactoring(RenameProcessor.java:384)
at com.intellij.refactoring.BaseRefactoringProcessor.lambda$doRefactoring$3(BaseRefactoringProcessor.java:487)
at com.intellij.refactoring.BaseRefactoringProcessor.lambda$doRefactoring$4(BaseRefactoringProcessor.java:498)
at com.intellij.openapi.application.impl.ApplicationImpl.lambda$runWriteActionWithProgressInDispatchThread$14(ApplicationImpl.java:957)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:176)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:556)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:501)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:66)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:163)
at com.intellij.openapi.progress.util.PotemkinProgress.runInSwingThread(PotemkinProgress.java:157)
at com.intellij.openapi.application.impl.ApplicationImpl.runWriteActionWithProgressInDispatchThread(ApplicationImpl.java:957)
at com.intellij.refactoring.BaseRefactoringProcessor.doRefactoring(BaseRefactoringProcessor.java:498)
at com.intellij.refactoring.BaseRefactoringProcessor.access$100(BaseRefactoringProcessor.java:80)
at com.intellij.refactoring.BaseRefactoringProcessor$3.run(BaseRefactoringProcessor.java:312)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:149)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:109)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:99)
at com.intellij.refactoring.BaseRefactoringProcessor.execute(BaseRefactoringProcessor.java:308)
at com.intellij.refactoring.BaseRefactoringProcessor.doRun(BaseRefactoringProcessor.java:232)
at com.intellij.refactoring.rename.RenameProcessor.doRun(RenameProcessor.java:122)
at com.intellij.openapi.fileEditor.impl.NonProjectFileWritingAccessProvider.disableChecksDuring(NonProjectFileWritingAccessProvider.java:181)
at com.intellij.refactoring.BaseRefactoringProcessor.run(BaseRefactoringProcessor.java:565)
at com.intellij.refactoring.ui.RefactoringDialog.invokeRefactoring(RefactoringDialog.java:183)
at com.intellij.refactoring.rename.RenameDialog.performRename(RenameDialog.java:325)
at com.intellij.refactoring.rename.RenameDialog.doAction(RenameDialog.java:303)
at com.intellij.refactoring.rename.RenameWithOptionalReferencesDialog.doAction(RenameWithOptionalReferencesDialog.java:60)
at com.intellij.refactoring.ui.RefactoringDialog.doRefactorAction(RefactoringDialog.java:88)
at com.intellij.refactoring.ui.RefactoringDialog$RefactorAction.actionPerformed(RefactoringDialog.java:160)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6541)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6306)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4897)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4719)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4719)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
at java.awt.EventQueue.access$500(EventQueue.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:715)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
at java.awt.EventQueue$4.run(EventQueue.java:737)
at java.awt.EventQueue$4.run(EventQueue.java:735)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:827)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:651)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:184)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:229)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:227)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:227)
at java.awt.Dialog.show(Dialog.java:1084)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:735)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:457)
at com.intellij.openapi.ui.DialogWrapper.invokeShow(DialogWrapper.java:1696)
at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1645)
at com.intellij.refactoring.rename.PsiElementRenameHandler.rename(PsiElementRenameHandler.java:198)
at com.intellij.refactoring.rename.PsiElementRenameHandler.rename(PsiElementRenameHandler.java:169)
at com.intellij.refactoring.rename.DirectoryAsPackageRenameHandlerBase.doRename(DirectoryAsPackageRenameHandlerBase.java:133)
at com.intellij.refactoring.rename.DirectoryAsPackageRenameHandlerBase.invoke(DirectoryAsPackageRenameHandlerBase.java:124)
at com.intellij.refactoring.actions.BaseRefactoringAction.actionPerformed(BaseRefactoringAction.java:132)
at com.intellij.openapi.actionSystem.ex.ActionUtil$1.run(ActionUtil.java:208)
at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:86)
at com.intellij.openapi.application.TransactionGuardImpl.submitTransactionAndWait(TransactionGuardImpl.java:151)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:222)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher$1.performAction(IdeKeyEventDispatcher.java:570)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.lambda$processAction$2(IdeKeyEventDispatcher.java:619)
at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:193)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction(IdeKeyEventDispatcher.java:618)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.inInitState(IdeKeyEventDispatcher.java:477)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.dispatchKeyEvent(IdeKeyEventDispatcher.java:211)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:633)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

java.lang.NullPointerException when opening project

PhpStorm 2017.1 EAP
Build #PS-171.2613.13, built on January 25, 2017
JRE: 1.8.0_112-release-b696 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o

Trace:

null
java.lang.NullPointerException
	at name.kropp.intellij.makefile.psi.MakefileTargetPresentation.getLocationString(MakefileTargetPresentation.java:22)
	at com.intellij.ide.projectView.PresentationData.updateFrom(PresentationData.java:186)
	at com.intellij.ide.util.treeView.smartTree.TreeElementWrapper.update(TreeElementWrapper.java:41)
	at com.intellij.ide.util.treeView.PresentableNodeDescriptor.getUpdatedPresentation(PresentableNodeDescriptor.java:88)
	at com.intellij.ide.util.treeView.PresentableNodeDescriptor.update(PresentableNodeDescriptor.java:41)
	at com.intellij.ide.util.treeView.AbstractTreeBuilder.updateNodeDescriptor(AbstractTreeBuilder.java:577)
	at com.intellij.ide.util.treeView.AbstractTreeUi$22.perform(AbstractTreeUi.java:924)
	at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:36)
	at com.intellij.ide.util.treeView.AbstractTreeUi.execute(AbstractTreeUi.java:1824)
	at com.intellij.ide.util.treeView.AbstractTreeUi.update(AbstractTreeUi.java:920)
	at com.intellij.ide.util.treeView.AbstractTreeUi.update(AbstractTreeUi.java:877)
	at com.intellij.ide.util.treeView.AbstractTreeUi.processExistingNode(AbstractTreeUi.java:2970)
	at com.intellij.ide.util.treeView.AbstractTreeUi.access$4800(AbstractTreeUi.java:64)
	at com.intellij.ide.util.treeView.AbstractTreeUi$32$1.run(AbstractTreeUi.java:1708)
	at com.intellij.ide.util.treeView.AbstractTreeUi.execute(AbstractTreeUi.java:1803)
	at com.intellij.ide.util.treeView.AbstractTreeUi.access$5100(AbstractTreeUi.java:64)
	at com.intellij.ide.util.treeView.AbstractTreeUi$33.perform(AbstractTreeUi.java:1769)
	at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:36)
	at com.intellij.ide.util.treeView.AbstractTreeUi.executeYieldingRequest(AbstractTreeUi.java:2058)
	at com.intellij.ide.util.treeView.AbstractTreeUi.access$5700(AbstractTreeUi.java:64)
	at com.intellij.ide.util.treeView.AbstractTreeUi$36$1.perform(AbstractTreeUi.java:1970)
	at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:36)
	at com.intellij.ide.util.treeView.AbstractTreeBuilder.runOnYeildingDone(AbstractTreeBuilder.java:433)
	at com.intellij.ide.util.treeView.AbstractTreeUi.runOnYieldingDone(AbstractTreeUi.java:2153)
	at com.intellij.ide.util.treeView.AbstractTreeUi$36.perform(AbstractTreeUi.java:1965)
	at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:36)
	at com.intellij.ide.util.treeView.AbstractTreeBuilder.lambda$new$0(AbstractTreeBuilder.java:51)
	at com.intellij.util.containers.TransferToEDTQueue.processNext(TransferToEDTQueue.java:99)
	at com.intellij.util.containers.TransferToEDTQueue.access$300(TransferToEDTQueue.java:37)
	at com.intellij.util.containers.TransferToEDTQueue$1.run(TransferToEDTQueue.java:58)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
	at java.awt.EventQueue.access$500(EventQueue.java:98)
	at java.awt.EventQueue$3.run(EventQueue.java:715)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
	at com.intellij.ide.IdeEventQueue.f(IdeEventQueue.java:818)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:655)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Incorrect parsing error of endif

The ioq3 makefile is parsed with an error (see screenshot).

screen shot 2017-06-05 at 11 45 28

This error seems to be incorrect, because the Makefile works pretty well.

Here is the makefile (gzipped because github doesn't allow to attach it as is):

Makefile.gz

support shebang for choosing make

Thanks a lot for the 'run' button!

We're using https://github.com/gojuno/make-profiler to run our Makefiles to get idea of how long the target was executing.

It looks like integration of it can be seamless if we put #!/usr/bin/env profile_make at the start of Makefile. Can it be supported for choosing the correct Make executable?

Working directory is project root instead of makefile path

Hi, thanks for fixing so quickly #19 and #20 .

I have another feature request. I have a makefile in a subdirectory of my project. When running a target, it seems that it's running in the project root folder as a working directory instead of the Makefile directory.

For example, this will always display the project root, and not the makefile directory

default:
    @echo `pwd`

define multiline variable syntax

screen shot 2017-02-04 at 10 12 27

Code:

define table_definition
'CREATE TABLE `table_1` (\
	`id` bigint unsigned NOT NULL AUTO_INCREMENT,\
	`data` json,\
	PRIMARY KEY (`id`)\
) ENGINE=InnoDB DEFAULT CHARSET=utf8'
endef

Has red markers in the end of lines

Order of targets do not matter

Let me reuse the example from issue #13. In that example i put the all target at the end because i did not want to talk about this bug yet.

The natural way to write that Makefile is to put the all target to the top. But the plugin then considers the dependencies unresolved. In a Makefile that doesn't matter. Dependencies are resolved at the end.

# The targets are marked with a curly red line and the message: "Unresolved prerequisite"
all: test-foo test-bar


test-foo: export VARIABLE=foo
test-foo:
	@echo "$$VARIABLE"

test-bar: export VARIABLE=bar
test-bar:
	@echo "$$VARIABLE"

Manipulator for this element is not defined: MakefilePrerequisiteImpl(PREREQUISITE); class name.kropp.intellij.makefile.psi.impl.MakefilePrerequisiteImpl

PhpStorm 172.3317.

Cannot rename class com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference from class com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReferenceSet to web-server: Manipulator for this element is not defined: MakefilePrerequisiteImpl(PREREQUISITE); class name.kropp.intellij.makefile.psi.impl.MakefilePrerequisiteImpl

com.intellij.util.IncorrectOperationException: Manipulator for this element is not defined: MakefilePrerequisiteImpl(PREREQUISITE); class name.kropp.intellij.makefile.psi.impl.MakefilePrerequisiteImpl
at com.intellij.psi.impl.source.resolve.reference.impl.CachingReference.getManipulator(CachingReference.java:53)
at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.rename(FileReference.java:537)
at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.bindToElement(FileReference.java:482)
at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.bindToElement(FileReference.java:530)
at com.intellij.refactoring.rename.RenameUtil.doRenameGenericNamedElement(RenameUtil.java:246)
at com.intellij.refactoring.rename.RenamePsiElementProcessor.renameElement(RenamePsiElementProcessor.java:58)
at com.intellij.refactoring.rename.RenameUtil.doRename(RenameUtil.java:188)
at com.intellij.refactoring.rename.RenameProcessor.performRefactoring(RenameProcessor.java:380)
at com.intellij.refactoring.BaseRefactoringProcessor.lambda$doRefactoring$11(BaseRefactoringProcessor.java:475)
at com.intellij.refactoring.BaseRefactoringProcessor.lambda$doRefactoring$12(BaseRefactoringProcessor.java:486)
at com.intellij.openapi.application.impl.ApplicationImpl.lambda$runWriteActionWithProgressInDispatchThread$15(ApplicationImpl.java:993)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:170)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:548)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:493)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:94)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:157)
at com.intellij.openapi.progress.util.PotemkinProgress.runInSwingThread(PotemkinProgress.java:167)
at com.intellij.openapi.application.impl.ApplicationImpl.runWriteActionWithProgressInDispatchThread(ApplicationImpl.java:993)
at com.intellij.refactoring.BaseRefactoringProcessor.doRefactoring(BaseRefactoringProcessor.java:486)
at com.intellij.refactoring.BaseRefactoringProcessor.lambda$execute$4(BaseRefactoringProcessor.java:314)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:149)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:109)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:99)
at com.intellij.refactoring.BaseRefactoringProcessor.execute(BaseRefactoringProcessor.java:312)
at com.intellij.refactoring.BaseRefactoringProcessor.doRun(BaseRefactoringProcessor.java:243)
at com.intellij.refactoring.rename.RenameProcessor.doRun(RenameProcessor.java:122)
at com.intellij.openapi.fileEditor.impl.NonProjectFileWritingAccessProvider.disableChecksDuring(NonProjectFileWritingAccessProvider.java:180)
at com.intellij.refactoring.BaseRefactoringProcessor.run(BaseRefactoringProcessor.java:553)
at com.intellij.refactoring.ui.RefactoringDialog.invokeRefactoring(RefactoringDialog.java:192)
at com.intellij.refactoring.rename.RenameDialog.performRename(RenameDialog.java:325)
at com.intellij.refactoring.rename.RenameDialog.doAction(RenameDialog.java:303)
at com.intellij.refactoring.ui.RefactoringDialog.doRefactorAction(RefactoringDialog.java:97)
at com.intellij.refactoring.ui.RefactoringDialog$RefactorAction.actionPerformed(RefactoringDialog.java:169)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at javax.swing.plaf.basic.BasicRootPaneUI$Actions.actionPerformed(BasicRootPaneUI.java:208)
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1663)
at javax.swing.JComponent.processKeyBinding(JComponent.java:2882)
at javax.swing.KeyboardManager.fireBinding(KeyboardManager.java:307)
at javax.swing.KeyboardManager.fireKeyboardAction(KeyboardManager.java:250)
at javax.swing.JComponent.processKeyBindingsForAllComponents(JComponent.java:2974)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2966)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2845)
at java.awt.Component.processEvent(Component.java:6318)
at java.awt.Container.processEvent(Container.java:2237)
at java.awt.Component.dispatchEventImpl(Component.java:4897)
at java.awt.Container.dispatchEventImpl(Container.java:2295)
at java.awt.Component.dispatchEvent(Component.java:4719)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:806)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1074)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:945)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:771)
at com.intellij.ide.IdeKeyboardFocusManager.dispatchEvent(IdeKeyboardFocusManager.java:27)
at java.awt.Component.dispatchEventImpl(Component.java:4768)
at java.awt.Container.dispatchEventImpl(Container.java:2295)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4719)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
at java.awt.EventQueue.access$500(EventQueue.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:715)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
at java.awt.EventQueue$4.run(EventQueue.java:737)
at java.awt.EventQueue$4.run(EventQueue.java:735)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:821)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:622)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
at java.awt.Dialog.show(Dialog.java:1084)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:736)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:458)
at com.intellij.openapi.ui.DialogWrapper.invokeShow(DialogWrapper.java:1686)
at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1635)
at com.intellij.refactoring.ui.RefactoringDialog.show(RefactoringDialog.java:64)
at com.intellij.refactoring.rename.PsiElementRenameHandler.rename(PsiElementRenameHandler.java:198)
at com.intellij.refactoring.rename.PsiElementRenameHandler.rename(PsiElementRenameHandler.java:169)
at com.intellij.refactoring.rename.DirectoryAsPackageRenameHandlerBase.doRename(DirectoryAsPackageRenameHandlerBase.java:130)
at com.intellij.refactoring.rename.DirectoryAsPackageRenameHandlerBase.invoke(DirectoryAsPackageRenameHandlerBase.java:121)
at com.intellij.refactoring.actions.BaseRefactoringAction.actionPerformed(BaseRefactoringAction.java:134)
at com.intellij.openapi.actionSystem.ex.ActionUtil$1.run(ActionUtil.java:216)
at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:86)
at com.intellij.openapi.application.TransactionGuardImpl.submitTransactionAndWait(TransactionGuardImpl.java:151)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:231)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher$1.performAction(IdeKeyEventDispatcher.java:576)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.lambda$processAction$2(IdeKeyEventDispatcher.java:625)
at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:193)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction(IdeKeyEventDispatcher.java:624)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.inInitState(IdeKeyEventDispatcher.java:479)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.dispatchKeyEvent(IdeKeyEventDispatcher.java:213)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:621)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Incompatible with builds > 163

I'm using PhpStorm EAP 2017.1 (build 171.1834.12), is there any way you could make this plugin compatible?

PhpStorm 2017.1 EAP
Build #PS-171.1834.12, built on December 22, 2016
JRE: 1.8.0_112-release-b620 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o

Analysis Error: cannot parse variable on make target right

GNU/Make can written variable that following case

FOO :=

target: download_url = https:/xxxxx
target:
	@echo "$(download_url) is only scope of $@"

Screenshot

2017-03-13 1 50 55

About exected on my environment

IntelliJ IDEA 2016.3.5
Build #IU-163.13906.18, built on March 6, 2017

JRE: 1.8.0_112-release-408-b6 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o

Build instructions

It would be great if there were build instructions in readme to allow testing the latest changes before they are released. I see some syntax errors but they may be already fixed in master so I am not sure if I should report them or just wait for the next release.

I found the plugin jar, but not sure how to produce a new one and what dependencies are required.

$ ls -l ~/Library/Application\ Support/PyCharm2016.3/intellij-makefile/lib/
total 336
-rw-r--r--  1 andrei  staff   165K Feb 24 09:44 intellij-makefile-1.0.jar

Force indent style to tabs

Currently editing makefiles uses the IDE default indentation setting. This breaks when this is set to spaces. The plugin should force the indentation style to tabs in makefiles.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.