IntelliJ: jump to source via external URL? - intellij-idea

I'd like to be able to click a source line in my code reviews, and have intellij open that file / line. We use Phabracator for reviews, which has a setting specifically for this -- for example, one can use
txmt://open/?url=file:///Users/alincoln/editor_links/%r/%f&line=%l
to jump to source lines in TextMate. Is there an analogue for IntelliJ?

EDIT: there is now a better option, explained in Create a web browser link that opens a file in Intellij. Possible?.
In Phabricator, under Settings -> Display Preferences, set Editor Link to
http://localhost:63343/api/file//path/to/source/%r/%f:%l
Replace /path/to/source with the actual path.
This works for me with PyCharm 2016.1.
Earlier versions used port 63342 instead of 63343.
Update: You may need to enable external connections and unsigned requests in IntelliJ's built-in server, as explained in https://www.jetbrains.com/help/idea/2016.2/debugger.html#d1397508e188.

Related

PhpStorm Deployment menu greyed out

I've added a server in PhpStorm deployment settings but the Tools -> Deployment -> Upload to menu is still greyed out.
You need to specify a deployment path mapping in your server. Even if it's just the root path, you need to enter /. PhpStorm doesn't do it automatically.
Go to your server in deployment settings, click the 'Mappings' tab and enter slash (or your mapping) in the 'Deployment path on server' field. You don't need to enter a web path. Deployment menu should be ungreyed now.
In version 2019.2, if you dont set the path to / in mapping, it will grayed out.
Previous version, you could leave it blank
Also, if your local path (inside mappings configuration) is not your project root, you have to click on the deployable folder in the project tree to enable the menu.
Also, if the Deployment menu is completely missing at the bottom of the context menu, then set up a default server.
Click the server with the check mark to make a server the default option for a project.
Then you will get this additional menu when you right click on a file, folder, or the project.
I also encountered this issue in PyCharm Professional 2022.1.
Since the aforementioned solutions did not work for me, and it took me some time to resolve, I am providing the solution I found.
Clicking on Tools -> Deployment -> upload to servername was not working for me no matter what I tried.
However, I could right-click on the main project folder (on the left of the PyCharm window, where the project folder/file structure is visible). This right-click opens a menu, where there is an option for deployment -> upload to servername.
Once I clicked this, not only it worked, but the classical way (Tools -> Deployment -> upload to ) ceased to be grayed out also.
If deployment was available and suddenly no longer works, confirm that your credentials didn't get wiped from the deployment settings (Connection tab).
If any of these answers don't help, because you can't even see the server menu, you probably have the Remote Hosts Access plugin disabled.
Go to settings, go to the plugins, and enable Remote Hosts Access.
Please check if the following options are enabled in settings(Ctrl+Alt+S). It goes uncheck if Php Storm crashes. Check the below options and restart the editor.
This works for ver 2017.2.1
Also, check Windows->Store current layout as the default just to make sure in the future you can restore the layout.
It's possible the opened file in the editor belongs to a External Library (bottom of project tree).
These External library files can't be deployed.

How to run external tool on current file in IntelliJ IDEA

I need to upload currently edited JSPs to server - via scp. I have pscp on my path on my windows machine.
How do I setup inteliij idea to do this with one click for currently opened file?
(I would be able to set this up in eclipse - via 'run tool' and parameter placeholders)
In IntelliJ IDEA this feature is called External Tools. There are various variables that you can pass to the process, including the current file name.

How to share Code Style settings between developers in IntelliJ

I would like all developers on my team to use the same default code style settings. We all use IntelliJ 11+ as our IDE and we use git as our source control system.
What is the easiest way to make sure they're all using the same settings? I thought there would be a way to check in the style settings into the project and have their editors discover them automatically, but that doesn't seem to be the case.
PS. I don't mind if developers consciously override some of the default settings with their own preferences, but I do want to make sure that we all at least start from a common set of default settings.
Code Style can be copied to project and saved in .idea/codeStyles to be shared via version control:
Copy to Project Click this button to create a copy of the current global scheme to the project level. After creating the copy, IntelliJ
IDEA suggests to switch to this new scheme at the project level.
The Settings Repository feature was introduced at IntelliJ IDEA 2016.
This option helps us to share IDE settings between different computers, including sharing settings between developers.
The settings are stored at Git repository, for example on GitHub or Bitbucket.
To setup Git repository we should set URL via Settings Repository menu option.
The developer can load remote settings, overwrite remote settings or merge local settings with remote ones.
The structure of Git repository with settings:
I used personal access token for GitHub authentication.
More information:
Settings Repository
Creating a personal access token for the command line
I came across this long after the fact, but thought I'd share if anyone ran into this. Add the following to your .gitignore
# IDE - IntelliJ
/.idea/*
# Keep the code styles.
!/.idea/codeStyles
/.idea/codeStyles/*
!/.idea/codeStyles/Project.xml
!/.idea/codeStyles/codeStyleConfig.xml
# Keep the inspection levels
!/.idea/inspectionProfiles
/.idea/inspectionProfiles/*
!/.idea/inspectionProfiles/Project_Default.xml
And of course, make sure your .gitignore also has a ! in front of it so these changes get picked up.
Basically, gitignore's recursive looking is a little wonky, so the below ignores a directory's contents, except for a subdirectory, then ignores that subdirectory's contents, except for the files we want.
codeStyleConfig lets you use per project settings, the project file itself is your actual code styles, and I included the Project_Default as it holds the warning levels, which you likely want if you're doing the code style work anyways.
You can create .editorconfig file in Your project (and it can be managed on directory level). More info on https://www.jetbrains.com/help/idea/configuring-code-style.html#editorconfig and https://editorconfig.org/
With this approach You can keep all Your code style settings in one file and it's not limited to IJ only.

ssh vs file associations / mime types

So, on my local machine I tweaked my
/usr/(local/)share/mime/packages/freedesktop.org.xml,
to make a few additional file extensions be detected as PHP.
<glob pattern="*.inc"/>
<glob pattern="*.module"/>
<glob pattern="*.install"/>
(this is for Drupal files)
nautilus uses this information to open the file in gedit.
gedit uses this information to enable the correct PHP syntax colors.
Now, I want the same for files opened via ssh.
I know this used to work in the past, but I don't remember what exactly I changed.
Whatever I did back then, it was probably wiped with the 11.10 Oneiric Ocelot upgrade.
What I want,
open an ssh folder in nautilus
double-click a file named "something.module"
have it open in gedit, with the correct PHP syntax colors enabled.
There are different things you might want to check.
1) Edit /usr/(local/)share/mime/packages/freedesktop.org.xml
Search for "php", and the section with <glob>. Add your own extensions there, as explained in the question above.
2) Run sudo update-mime-database /usr/share/mime
You might have to do this after you changed the settings as in (1).
3) Edit /usr/share/gtksourceview-3.0/language-specs/php.lang (path may vary)
Look for <property name="globs">, and add your custom extensions.
(see http://live.gnome.org/Gedit/FAQ#How_to_set_the_default_highlight_mode_for_new_files.3F)
4) Restart gedit.
Probably enough to just close and re-open the tab where you wanted to edit, but if that doesn't help, close and re-open all gedit windows.

Start two instances of IntelliJ IDE

Well my question is pretty simple, how do I start two instances of IntelliJ (community edition).
When I have one instance started and I try to start another one, all that happens is that my started instance gets focus.
I'm developing Android applications using IntelliJ.
Any thoughts?
Press Ctrl+Alt+SChoose Appearance & Behavior, then System Settings, check radio button: Open project in new window.
You need to configure each instance to use its own folders for config/plugins/system locations by editing idea.properties file on Windows/Linux and Info.plist on Mac. You can find the details in FAQ.
Note that normally it's not necessary since you can open multiple projects in different IDEA frames within the same instance using File | Open or Open Recent.
CrazyCoder has roughly the right idea. However, setting the config file alone was not sufficient for me to run multiple instances. Here are my steps to get this going (in GNU/Linux, I am sure you can figure out equivalent in other systems):
Create a folder/directory per instance you want to run.
mkdir -p ~/idea/instance-0
Go to the installation directory (e.g. /opt/intellij) and copy the idea.properties (in bin) file over to your instance directory.
cp /opt/intellij/bin/idea.properties ~/idea/instance-0/
Copy 3 more directories: system, plugins, and config. I highly recommend doing this without the running instance
cp -r /opt/intellij/system ~/idea/instance-0/
cp -r /opt/intellij/plugins ~/idea/instance-0/
cp -r /opt/intellij/config ~/idea/instance-0/
mkdir ~/idea/instance-0/log
Open your idea.properties file and update the configurations for your directories:
#---------------------------------------------------------------------
# Uncomment this option if you want to customize path to IDE config folder. Make sure you're using forward slashes.
#---------------------------------------------------------------------
idea.config.path=${user.home}/config
#---------------------------------------------------------------------
# Uncomment this option if you want to customize path to IDE system folder. Make sure you're using forward slashes.
#---------------------------------------------------------------------
idea.system.path=${user.home}/system
#---------------------------------------------------------------------
# Uncomment this option if you want to customize path to user installed plugins folder. Make sure you're using forward slashes.
#---------------------------------------------------------------------
idea.plugins.path=${user.home}/plugins
#---------------------------------------------------------------------
# Uncomment this option if you want to customize path to IDE logs folder. Make sure you're using forward slashes.
#---------------------------------------------------------------------
idea.log.path=${user.home}/log
Now, you can start IntelliJ with the new setup:
IDEA_PROPERTIES=~/idea/instance-0/idea.properties /opt/intellij/bin/idea
Obviously, you probably want to put the command in a script file for invocation. This seems to work for me.
File->Settings->General and in section "Startup/Shutdown" check "Confirm window to open project in"
With Ultimate 2020.2, go to Appearance & Behavior > System Settings in the settings dialog and select the "Ask" option for "Open project in"
As per the directions from jetbrains you'll need go to the 'General' page of the 'Settings' dialog and chose 'Open project in a new window'. Then proceed to open a project as you normally do. IntelliJ should then startup a completely new instance.
There is an other very quick way of doing it. There is always an EAP version of the IDE and it can run at same time with the current one. For example I am using AppCode 2017.2 and 2017.3 EAP in parallel.
Go go to IntelliJ | Tools | Create Command-line Launcher...
Keep the defaults (which creates a binary named "idea"):
Now, go to your command line.
Cd to your project directory and type: idea .
This will create a .idea directory for IntelliJ configurations for that project, which it will re-use each time to start IntelliJ from that directory.
You can now go to a different project directory and type: idea .
Assuming you left the previous IntellJ IDE open, you will now have two IntellJ IDEs open, one for each project.
Notes:
1) If your project uses environment variables, then I'd recommending opening a separate terminal tab/window for each project and set that project's environment variables before running: idea .
2) Depending on what you're trying to accomplish, you may need to modify your classpath (or settings like Project GOPATH) for each IntelliJ instance.
My answer is not directly related to the question but its a solution for some cases where we think we need 2 Intellij instances.
For my issue I was thinking to launch 2 Intellij instances. But after careful thinking and searching for other options, I found an easy and quick solution and I wanna share with the community
If you are looking to compare files between different branches, and you wanna compare the difference, that can be done with git comparison. You don't need 2 different Intellij instances.
My Case:
In my case, I wanted to copy very specific code from 1 branch to another and I wanted to compare the difference between the code. The restriction was, I can't do git merge or cherry-pick because we didn't want full commit to be part of new branch. Just few necessary lines were required in the new branch.
My Solution:
Select the branch
Open the file where you wanna insert code
Right Click -> Git -> Compare with... (refer to pic)
Select the branch and you will get the difference
Append or Copy the difference
If you have new files or directories, you can create it manually and copy-paste the content
I know this answer doesn't directly relates to what has been asked, but sometimes we miss alternative solutions.
Hope this can be helpful as an alternative solution.
In addition to the above comments from #crazycoder and #magice, Make sure that you are not trying to load Pycharm with the same project two times which happened to me!!!.
For example, in windows10 already loaded with ONLY one project in PyCharm and tried to load another Pycharm instance by clicking on the PyCharm desktop shortcut or from task-bar if added. In this case, Pycharm will not load the second instance.
I have wasted some time here. So, wanted to share with the community as it will help someone out there!!
Cheers,