dubreuia / intellij-plugin-save-actions Goto Github PK
View Code? Open in Web Editor NEWSupports configurable, Eclipse like, save actions, including "organize imports", "reformat code" and "rearrange code".
License: MIT License
Supports configurable, Eclipse like, save actions, including "organize imports", "reformat code" and "rearrange code".
License: MIT License
Latest version of the plugin is removing @SuppressWarnings for Sonar issues, when it shouldn't.
What is not working (checked):
Both for version 0.7. Reformatting working OK for the same situation with version 0.4.
This is related to the fix for #1, because if you have a module whose code is in a different system path than the project -- the plugin won't work at all.
This is fixed (and tested against #1 also) by using
// only process the project that is currently active
final DataContext dataContext = DataManager.getInstance().getDataContextFromFocus().getResult();
final Project project = DataKeys.PROJECT.getData(dataContext);
final PsiFile psiFile = PsiDocumentManager.getInstance(project).getPsiFile(document);
And removing "isActive" and "isPsiFilePhysicallyInProject".
This commit has the fix + the "only modify if saveAll command is issued" fix from @krasa as well. I would do a PR, but there are some other changes as well that you might not want.
I have an interesting issue that I've narrowed down to being a C block style comment with a function within it. I thought at first it was caused by the function within the comment being recursive, but attempts at recreating the issue failed. As I'm not sure if it is an issue with the combination between SaveActions and/or EclipseFormatter. I have attached idea.txt file which currently doesn't have all too much information within it. Another thing to note is that it will continually say: 5:35:09 PM TestCodeFormat.java formatted successfully by Eclipse code formatter
within the Intellij Even Log.
One thing to note is that if the comment is changed to single line comments //
or it is not commented, it will successfully complete.
Version: IntelliJ IDEA 2016.1.2
Build #IC-145.971, built on April 29, 2016
JRE: 1.8.0_76-release-b162 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Eclipse Code Formatter: Version: 15.5.132.637.2
Save Actions: 0.9
/*private void printDeviceTree(CheckPointDevice device, String indent) {
if (device == null) return;
String text = device.getCpType().toString() + " " + device.getName() + ":" + device.getIpAddress();
logger.error(indent + text);
for (CheckPointDevice child : device.getChildren()) {
printDeviceTree(child, indent + " ");
}
}*/
When I edit a build.gradle file while the plugin is turned on, the code is formatted immediately as I type. This make it unusable. For example, I write:
println
and then press space, and the space is immediately removed.
This makes it pretty much impossible to code. As far as I know, this issue exist only on build.gradle files.
I'm using it in IDEA Ultimate 14.1.4.
before upgrade to version 0.7, i used version 0.4, the can auto format all modified file (before do make/debug/other things), today i upgrade to version 0.7 and debug the source code, now why only focus document can be used save actions? when do make/debug can not used
@Override
public void beforeDocumentSaving(@NotNull Document document) {
if (!SaveAllAction.TRIGGERED && isDocumentActive(document)) {
LOGGER.debug("Document " + document + " is still active, do not execute");
return;
}
for (Project project : ProjectManager.getInstance().getOpenProjects()) {
PsiFile psiFile = PsiDocumentManager.getInstance(project).getPsiFile(document);
if (isPsiFileEligible(project, psiFile)) {
processPsiFile(project, psiFile);
}
}
}
----------------Environment Version----------------
save actions plugin version 0.7
intellij idea version 15.0.3
For instance, I don't want to format my xml or gradle file (I just lost 30 minutes as the plugin had formatted a gradle properties files..).
So, it would be nice to add a feature to provide a list of file name masks to apply the save actions to.
Default : all
Alternative : apply file masks :
the a field becomes enabled to enter a regexp list, comma separated like : .java,.xml
When using the plugin, I lost the ability to remove trailing spaces on save (setting in Preference >> Editor >> Trailing Spaces).
Do work with phpstorm?!
Make it possible to deactivate the save actions on certain files (by pattern, path, etc.).
Saw the following today. Had a gradle build running in the background.
IntelliJ 2016.1.2
OSX 10.11.5
String index out of range: -1 java.lang.StringIndexOutOfBoundsException: String index out of range: -1 at java.lang.String.substring(String.java:1931) at com.dubreuia.utils.PsiFiles.getUsableUrl(PsiFiles.java:40) at com.dubreuia.utils.PsiFiles.isPsiFileExcluded(PsiFiles.java:30) at com.dubreuia.SaveActionManager.isPsiFileEligible(SaveActionManager.java:50) at com.dubreuia.SaveActionManager.beforeDocumentSaving(SaveActionManager.java:36) at sun.reflect.GeneratedMethodAccessor574.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:117) at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:372) at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:359) at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:338) at com.intellij.util.messages.impl.MessageBusImpl.access$200(MessageBusImpl.java:42) at com.intellij.util.messages.impl.MessageBusImpl$2.invoke(MessageBusImpl.java:226) at com.sun.proxy.$Proxy22.beforeDocumentSaving(Unknown Source) at sun.reflect.GeneratedMethodAccessor574.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.a(FileDocumentManagerImpl.java:136) at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.access$000(FileDocumentManagerImpl.java:86) at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl$1.invoke(FileDocumentManagerImpl.java:114) at com.sun.proxy.$Proxy22.beforeDocumentSaving(Unknown Source) at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl$4.run(FileDocumentManagerImpl.java:422) at com.intellij.pom.core.impl.PomModelImpl.guardPsiModificationsIn(PomModelImpl.java:380) at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.b(FileDocumentManagerImpl.java:419) at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.a(FileDocumentManagerImpl.java:393) at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.saveAllDocuments(FileDocumentManagerImpl.java:313) at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.saveAllDocuments(FileDocumentManagerImpl.java:292) at com.intellij.ide.SaveAndSyncHandlerImpl.doSaveDocumentsAndProjectsAndApp(SaveAndSyncHandlerImpl.java:140) at com.intellij.ide.SaveAndSyncHandlerImpl.saveProjectsAndDocuments(SaveAndSyncHandlerImpl.java:134) at com.intellij.ide.SaveAndSyncHandlerImpl$4.onFrameDeactivated(SaveAndSyncHandlerImpl.java:104) at com.intellij.ide.FrameStateManagerImpl.a(FrameStateManagerImpl.java:87) at com.intellij.ide.FrameStateManagerImpl.access$500(FrameStateManagerImpl.java:32) at com.intellij.ide.FrameStateManagerImpl$2$1.run(FrameStateManagerImpl.java:72) at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238) at com.intellij.util.Alarm$Request$1.run(Alarm.java:378) at com.intellij.util.Alarm$Request.run(Alarm.java:398) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at com.intellij.util.concurrency.SchedulingWrapper$MyScheduledFutureTask.run(SchedulingWrapper.java:227) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:726) at com.intellij.ide.IdeEventQueue.b(IdeEventQueue.java:857) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:658) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:386) 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)
I have two different machines each running the same IntelliJ (2016.1.2 built May 14th) and version 0.11 of the plugin.
On one machine everything works great. On the other I have no exclusions although I used to have some and have since removed all of them. On this machine nothing gets formatted. The IntelliJ log always shows something similar to this for each file:
C:/Users/pcalouch/Projects/TheraDoc_4.7.0/theraDocWeb/web/theradoc/app/components/features/aur/ar-details.component.html excluded in []
I have tried un-installing and re-installing the plugin with no luck on that machine. Could the plugin somehow be referencing some out of date exclusion? The debug doesn't tell what exclusion preventing the file from being formatted.
Any ideas? Thanks!
Would it be possible to add another feature to add "@OverRide" annotation to methods that either override or implement interface methods? Thank you.
plugin is forcing style rules of javadoc (adding empty lines) and line break when overflowing specified Right margin
this happens in IDEA 15, in IDEA 14.1.5 plugin works fine
Intellij 14/15, Windows 7. Refactor e.g. a Java class name will reformat the whole file for any file that uses that class even with Reformat only changed code turn on.
When using :w
with the vim plugin, the save actions don't get executed.
When opening and editing a gradle file with the save actions plugin activated, the "organize imports" task is running after each hit of a key.
I like this plugin but had to disable it because it was slowing down my IntelliJ. This is caused by the annoying auto save feature of IntelliJ. As a result, the SaveActions is invoked too often rendering the editor unusable because of the frequent pauses while it's doing it's thing. I don't think this is the plug-ins problem in this case, but I am wondering if there is a trick to solve this?
Opened the Maven Projects "Tab" and then this error came up:
Stacktrace:
Attempt to modify PSI for non-committed Document! java.lang.IllegalStateException: Attempt to modify PSI for non-committed Document! at com.intellij.pom.core.impl.PomModelImpl.a(PomModelImpl.java:325) at com.intellij.pom.core.impl.PomModelImpl.runTransaction(PomModelImpl.java:146) at com.intellij.psi.impl.source.tree.ChangeUtil.prepareAndRunChangeAction(ChangeUtil.java:167) at com.intellij.psi.impl.source.tree.CompositeElement.addChild(CompositeElement.java:660) at com.intellij.psi.impl.source.tree.CompositeElement.addChildren(CompositeElement.java:767) at com.intellij.psi.impl.source.codeStyle.CodeEditUtil.addChildren(CodeEditUtil.java:81) at com.intellij.psi.impl.source.tree.CompositeElement.addInternal(CompositeElement.java:544) at com.intellij.psi.impl.source.tree.java.ModifierListElement.addInternal(ModifierListElement.java:45) at com.intellij.psi.impl.source.PsiModifierListImpl.setModifierProperty(PsiModifierListImpl.java:239) at com.intellij.psi.util.PsiUtil.setModifierProperty(PsiUtil.java:1108) at com.intellij.codeInspection.localCanBeFinal.LocalCanBeFinal$AcceptSuggested.applyFix(LocalCanBeFinal.java:341) at com.intellij.codeInspection.localCanBeFinal.LocalCanBeFinal$AcceptSuggested.applyFix(LocalCanBeFinal.java:325) at com.dubreuia.processors.InspectionProcessor$InspectionWriteQuickFixesAction.writeQuickFixes(InspectionProcessor.java:82) at com.dubreuia.processors.InspectionProcessor$InspectionWriteQuickFixesAction.run(InspectionProcessor.java:74) at com.intellij.openapi.command.WriteCommandAction$Simple.run(WriteCommandAction.java:162) at com.intellij.openapi.application.RunResult.run(RunResult.java:35) at com.intellij.openapi.command.WriteCommandAction$2.run(WriteCommandAction.java:108) at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:124) at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:99) at com.intellij.openapi.command.WriteCommandAction.performWriteCommandAction(WriteCommandAction.java:103) at com.intellij.openapi.command.WriteCommandAction.access$000(WriteCommandAction.java:34) at com.intellij.openapi.command.WriteCommandAction$1.run(WriteCommandAction.java:85) at com.intellij.openapi.application.impl.ApplicationImpl.invokeAndWait(ApplicationImpl.java:723) at com.intellij.openapi.command.WriteCommandAction.execute(WriteCommandAction.java:82) at com.dubreuia.processors.InspectionProcessor$1.run(InspectionProcessor.java:48) at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.a(LaterInvocator.java:345) at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:329) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:726) at com.intellij.ide.IdeEventQueue.h(IdeEventQueue.java:857) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:658) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:386) 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)
18:30 Throwable Cannot run synchronous submitTransactionAndWait from invokeLater. Please use asynchronous submit*Transaction. See TransactionGuard FAQ for details. Transaction: Save All (Save all files and settings) of class com.intellij.ide.actions.SaveAllAction Unsafe modality: ModalityState:Optimize Imports 2026817985: running=false; canceled=false
Add notes like the docker plugin "Note: For the plugin to work properly, your IDE should be started using Java 7 or a later version. For corresponding instructions, see Selecting the JDK version the IDE will run under."
Thanks for updating the save actions to 0.9. One thing is still annoying and not what I expected updating code that had been written with eclipse.
The option "Add final to local variable" I would like to check, because I want the final added to:
String text = object.getName();
(Otherwise checkstyle will complain.)
But I do not need the final added to all parameters of all method declarations.
Gives many superflous code changes. Please do not include that in this option.
Perfectly all right would be a separate option "Add final to method parameters" which I could uncheck if desired.
Hi,
thank you for excellent plugin, as former Eclipse user I like it. However I have strange problems with my scala code. Auto save is configured to only organize imports, all other configurations are switched off. When I modify one line and I switch focus away from IntelliJ, the organize imports deletes some of imported class and the file cannot be compiled. This is quite unfortunate. I tried to do Code | Optimize imports manually but it works fine. Just when this action is called from the plugin it doesn't work as expected. Seems like there is some problem with interaction with scala plugin?
Intellij 2016.1.1, Scala plugin 3.0.2 and Save Actions plugin 0.7.
in my setup I have something like this:
IntelliJ Project Setup:
C:\Users\pcalouch\Projects\My Project (IntelliJ project files here)
C:\Users\pcalouch\Repos\My Project (index.cfm and other source code files here)
If I use .*.cfm as a file path exclusion index.cfm is still formatted when pressing Ctrl+S. However it works if I set me project up like this:
C:\Users\pcalouch\Projects\My Project (IntelliJ project files along with index.cfm and other source code files here)
I thinking it could be something similar that caused this issue: Nothing happens in IntelliJ 14 Ultimate #4
Add debug and info logs to help diagnostics (especially for #4).
If the options to reformat code and organize imports are enabled and at least reformat code is triggered then the code is reformatted but the file is not saved so you have to press Ctrl+S twice.
Steps to reproduce: (Tested in a java file and java script file)
1: Write some correctly formatted code.
2: Add after a semicolon some more code so you get a line like
System.out.println("foo");System.out.println("bar");
3: Press Ctrl+S
Expected result:
The code shall look like
System.out.println("foo");
System.out.println("bar");
and
The file shall be saved.
Actual result:
The code looks like
System.out.println("foo");
System.out.println("bar");
and
The file is NOT saved.
The plugin unfortunately doesnt work in Android Studio latest version. Also it cant be selected from the plugin browser. Thank you
Add the option for each one individually.
It should have the same mechanism than #34.
From the plugin page comment section:
andyrozman
2015-05-04 11:34:21
Great plugin... Just something I wanted when I switched from Eclipse... While it's great, there is one thing missing... Plugin should be enabled for each project separately... I am using my IntelliJ for two different project, I need Save actions for one of them but not for the other one...
Just installed the save actions plugin and love it. One improvement that could be added is to add the option to make the project on save. IntelliJ currently has this option, but the option only performs a make if there is no code running. This makes hot swapping very annoying because you must manually press Cmd+F9 to make the project after each change. It would be great if save actions could also make the package after every save, regardless if code is running or not.
Comment: I would love to be able to save without save actions. ctrl-s (save with action) ctrl-alt-s (save without action) becouse sometimes it better not to.
From the comment section in : https://plugins.jetbrains.com/plugin/7642
From #30
private final static Set<Document> documentsToProcess = new HashSet<Document>();
private static VirtualFile[] fileToCompile = VirtualFile.EMPTY_ARRAY;
// The plugin extends FileDocumentManagerAdapter.
// beforeDocumentSaving calls reformatAndCompile
private static void reformatAndCompile(
@NotNull final Project project,
@NotNull final Document document,
@NotNull final PsiFile psiFile) {
documentsToProcess.add(document);
if (storage.isEnabled(Action.compileFile)
&& isDocumentActive(project, document)) {
fileToCompile = isFileCompilable(project, file);
}
ApplicationManager.getApplication().invokeLater(new Runnable() {
@Override
public void run() {
CommandProcessor.getInstance().runUndoTransparentAction(new Runnable() {
@Override
public void run() {
if (documentsToProcess.contains(document)) {
documentsToProcess.remove(document);
if (storage.isEnabled(Action.optimizeImports)
|| storage.isEnabled(Action.reformatCode)) {
if (storage.isEnabled(Action.optimizeImports)) {
new OptimizeImportsProcessor(project, psiFile)
.run();
}
if (storage.isEnabled(Action.reformatCode)) {
new ReformatCodeProcessor(
project,
psiFile,
null,
ChangeListManager
.getInstance(project)
.getChange(psiFile.getVirtualFile()) != null)
.run();
}
PsiDocumentManager psiDocumentManager = PsiDocumentManager.getInstance(project);
psiDocumentManager.doPostponedOperationsAndUnblockDocument(document);
psiDocumentManager.commitDocument(document);
}
}
}
});
if (fileToCompile.length > 0) {
if (documentsToProcess.isEmpty()) {
compileFile(project, fileToCompile);
fileToCompile = VirtualFile.EMPTY_ARRAY;
}
} else if (storage.isEnabled(Action.makeProject)) {
if (documentsToProcess.isEmpty()) {
makeProject(project);
}
} else {
saveFile(project, document, psiFile.getVirtualFile());
}
}
}, project.getDisposed());
}
private static void makeProject(@NotNull final Project project) {
ApplicationManager.getApplication().invokeLater(new Runnable() {
@Override
public void run() {
CompilerManager.getInstance(project).make(null);
}
}, project.getDisposed());
}
private static void compileFile(
@NotNull final Project project,
@NotNull final VirtualFile[] files) {
ApplicationManager.getApplication().invokeLater(new Runnable() {
@Override
public void run() {
CompilerManager.getInstance(project).compile(files, null);
}
}, project.getDisposed());
}
private static void saveFile(
@NotNull final Project project,
@NotNull final Document document,
@NotNull final VirtualFile file) {
ApplicationManager.getApplication().invokeLater(new Runnable() {
@Override
public void run() {
final FileDocumentManager fileDocumentManager = FileDocumentManager.getInstance();
if (fileDocumentManager.isFileModified(file)) {
fileDocumentManager.saveDocument(document);
}
}
}, project.getDisposed());
}
The default values are initialised each time the settings are opened.
I installed the plugin, restarted IntelliJ, enabled Save actions in its config pane, but it does not seem to do anything. I tried
Any idea?
btw. this plugin is a great idea ;-)
If you add
com.intellij.modules.lang
to the plugin.xml it will on all intellij products like webstorm.
Great plugin btw.
There are times where it seems that I don't get the final
keyword added on my fields. I'm using idea15 pro edition
I'm not sure how feasible this is - but it'd be great if we could trigger an arbitrary menu item on save.
For example, it would be nice to be able to run "JSCS fix" on save
The plugin does not seem to work in PyCharm (no File > Save Options > etc. menu exists).
It seems the rearrange code processor is not shipped with every intellij version (it might come from a plugin).
Easy workaround: go in "File > Settings > Save Actions > Rearrange code" and uncheck the option. Your code will still reformat but won't reorder.
com.intellij.codeInsight.actions.RearrangeCodeProcessor.<init>(Lcom/intellij/codeInsight/actions/AbstractLayoutCodeProcessor;Lcom/intellij/openapi/util/Condition;)V
java.lang.NoSuchMethodError:
com.intellij.codeInsight.actions.RearrangeCodeProcessor.<init>(Lcom/intellij/codeInsight/actions/AbstractLayoutCodeProcessor;Lcom/intellij/openapi/util/Condition;)V
at
com.dubreuia.processors.ProcessorFactory.getRearrangeCodeProcessor(ProcessorFactory.java:38)
at
com.dubreuia.processors.ProcessorFactory.getSaveActionsProcessor(ProcessorFactory.java:21)
at com.dubreuia.Component$1.beforeDocumentSaving(Component.java:41)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:114)
at
com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:315)
at
com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:302)
at
com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:287)
at
com.intellij.util.messages.impl.MessageBusImpl.access$200(MessageBusImpl.java:41)
at
com.intellij.util.messages.impl.MessageBusImpl$2.invoke(MessageBusImpl.java:177)
at com.sun.proxy.$Proxy20.beforeDocumentSaving(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.multiCast(FileDocumentManagerImpl.java:128)
at
com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.access$000(FileDocumentManagerImpl.java:87)
at
com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl$1.invoke(FileDocumentManagerImpl.java:116)
at com.sun.proxy.$Proxy20.beforeDocumentSaving(Unknown Source)
at
com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl$4.run(FileDocumentManagerImpl.java:411)
at
com.intellij.pom.core.impl.PomModelImpl.guardPsiModificationsIn(PomModelImpl.java:354)
at
com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.doSaveDocumentInWriteAction(FileDocumentManagerImpl.java:408)
at
com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.doSaveDocument(FileDocumentManagerImpl.java:382)
at
com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.saveAllDocuments(FileDocumentManagerImpl.java:303)
at
com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.saveAllDocuments(FileDocumentManagerImpl.java:282)
at
com.intellij.openapi.application.impl.ApplicationImpl.saveAll(ApplicationImpl.java:1452)
at
com.intellij.ide.actions.SaveAllAction.actionPerformed(SaveAllAction.java:26)
at
com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher$3.performAction(IdeKeyEventDispatcher.java:614)
at
com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction(IdeKeyEventDispatcher.java:663)
at
com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.inInitState(IdeKeyEventDispatcher.java:513)
at
com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.dispatchKeyEvent(IdeKeyEventDispatcher.java:211)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:546)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:384)
at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
It would be nice if you could check inspections that would run and quick fix everything in changed files.
From comments to Eclipse Code Formatter plugin:
"I need Intellij to add the 'final' modifier everywhere possible. similar to Eclipse's: "Use modifier 'final' where possible" under "Save Actions"."
install intellij-plugin-save-actions
if I create new class file, the new file will be generate two package code.
like this: package com.demo;package com.demo;
and I can not save it use 'ctrl + s', can show error dialog.
https://www.reddit.com/r/IntelliJIDEA/comments/2qta03/intellij_save_action_plugin_just_released/
Tested it now with CE 14.0.2 for a few minutes. It does change the code under my hands, quite often even (every 15 seconds or more). If this machine weren't too slow for such a feature, anyway, I would probably not suffer it, though. Will try again at home (might not report), where it's really fast, deactivated it here (office).
Organize organize used to be Organize imports.
Currently Save Actions plugin always removes empty lines from properties files.
This is not desirable for me- I use empty lines to separate file sections.
There are no options that control save actions for properties files (ignoring *.properties files does not work for me, most likely because of #29)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.