Synchronize virtual file to the physical file in the Intellij IDEA plugin - intellij-idea

I'm implementing the plugin for Intellij IDEA that needs file to be saved before executing action. Action is shell command, it requires file name to be passed as the command-line parameter.
AFAIK Idea saves (synchronizes) files on frame deactivation, so if I right-click on the file, and click on my action - old version of file will be used. If I go to other window, return to Idea and click my action - current version of the file will be used.
I've read this doc about Virtual File System, and found that I can trigger file to be loaded from file system (e.g. VirtualFileManager.syncRefresh() or VirtualFileManager.asyncRefresh()). I tried this hoping it would work, but it doesn't.
Question is: how to manually (programmatically) save file?

While formatting my question I checked one more time, and this worked for me.
FileDocumentManager.getInstance().saveAllDocuments();
EDIT
Finally came up with the solution
FileDocumentManager fileDocumentManager = FileDocumentManager.getInstance();
Document document = fileDocumentManager.getDocument(file);
if (document != null) {
fileDocumentManager.saveDocument(document);
}

Related

Excel on Mac. Cannot open IQY file in Data/Get External Data/Run Web Query

I am running Excel version 16.45 on Mac.
I have created a .iqy and saved it in the Queries directory alongside certain templates which were already there.
I go to Data/Get External Data/Run Web Queries. While the templates are accessible, my file is visible but greyed out (same thing happens if I save the file in a different directory).
Would anyone be able to help?
According to your information, I would like to confirm whether the issue occurs when you follow the steps as below:
1.Create a Word file, paste the web URL.
2.Save the Word as .iqy with .txt format.
3.Choose MS-DOS as coding.
4.Create an Excel file and click "Data >Get External Data >Run Web Query (Or Run Saved Query) " of the Bar
I was able to address the issue as follows.
When navigating to the relevant directory with Finder, the '.iqy' file appears to be appropriately named (as per Image 1).
In fact, if you reach the file in Terminal, the file is saved as '.iqy.txt'.
So all I had to do is rename the file, simply removing the '.txt' string at the end.
Screen you see when navigating in Finder

How to set a filename for file templates in IntelliJ

I am trying to create a new file template in IntelliJ for a specific type of file needed by the framework I am using. The name of this file is always going to be base.kt, and I have added the file template as per this:
This works fine for me other than the fact that everytime I right-click on a module and say 'New base.kt', it still asks me to enter a filename. For the package-info file template that comes pre-shipped with IntelliJ, it just creates the file without prompting this dialog:
Is there a way for me to make IntelliJ always use a particular name and skip this dialog?
You just need to write #set($NAME="base")

Problems overwriting file in application folder

I have a file called PolicyLookup.sql that sits in my application's root folder. My app loads this file into a text box, so that users can edit it and overwrite the original file by pressing a save button. This all worked perfectly during test, however after deployment users are unable to save the file due to write issues within C:\Program Files.
Is there a way around this - or is there a better way to implement this type of thing? One solution that springs to mind for me is placing the contents of the PolicyLookup.sql file within a User Setting - however it intrinsically feels wrong to me to put the entire contents of a file within a settings variable.
Ordinary users do not have write permissions on %ProgramFiles%. If you need to save a configuration file then put it in a subfolder of %APPDATA% (which for me is C:\Users\Gord\AppData\Roaming) or some other place where a regular user is allowed to write.

Intellij failed to detect file type

I have intellij 13.1.3 Ultimate and have been using it for my PHP projects. All my files.php are nicely hightlighted for php.
This morning I had to create a new file called "report.php". At first I create it with right click > new > file, but this gave me no hightlighting. So I deleted it and tried again with a right click > new > php file with same result. Now what ever the way I create it, it thinks the file is txt (it seems so) and there is no code highlighting. It's pretty frustrating.
I have tested the creation of a new file with a different name "reports.php" but this time with right click> new > PHP file, and it came nicely highlighted. i tried to rename the file to "report.php" but it came back to no highlighting!!
It seems Intellij is stuck with the name report.php being a type text.
I tried to delete the file, restart the IDEA, recreate it the right way, no luck.
I tried power save mode on, and off. No luck.
I tried File > invalidate cache/restart, ... no luck.
I'm out of options here...
Is there a way to FORCE intellij to interpret a file? Is the name "report" a reserved word?!?!?
How can it be so stupid...
edit: I also tried the suggestion in : IntelliJ: how to force editor to treat a file as javascript? but php is not in the list of the Template data language
Also in settings > file types, I saw two Php file entries. One with no extention, and one properly configured. I deleted the bad one but it reappears after a restart of the IDEA!
Please go to Settings | Editor | File Types and remove the association of "report.php" with the text file type. (The erroneous association was created because of a bug in IntelliJ IDEA, but unfortunately we don't currently have specific steps to reproduce for it.)

Embedding an image as a resource in a FireBreath plugin

While using VS (2010), I used to be able to add an image as a resource simply by going to the Resource view and then: Right click project > Add > Resource > Import.
I even asked a question about how to then load it: Loading an image from a resource embedded in a dll, but that changed for some reason.
Now when I try the same thing and save the .rc file, I get this message:
"The resource script FILE_PATH.rc was not created using Microsoft
Visual Studio. Comments, macros, preprocessor directives, and
conditionally included information may be modified and/or removed from
this file during the build process. Replace existing file?"
Even if I click "yes" (in order to just test things) then I get all kind of error messages at compile time:
ResourceCompile:
gen\firebreathWin.rc(8): error RC2144: PRIMARY
LANGUAGE ID not a number
gen\firebreathWin.rc(16): error RC2135: file not found VS_VERSION_INFO
etc...
I have two questions:
What is the correct way to add an image resource which will be added to the compiled plugin using CMake? I searched about it and couldn't find any helping information.
What can be the cause for this change in behavior? since I was able to use the same exact steps before and it worked.
Thanks.
First of all, I wouldn't do this; instead, I'd just put the file in the same directory as your DLL and use the path of DLL to find it.
That said, the "correct" way to do this would be to see what changes are made to the .rc file when you add it in the IDE, copy the .rc file from gen_templates/ in the root of the firebreath directory into your project, and then make those changes to your copy of the file. Any changes you make to the generated file will be overridden any time cmake is run again, which can happen any time your cmake files (CMakeLists.txt, *.cmake) change.