Diff in PhpStorm - diff

How can I compare a document in the current project with one that is not part of the project?
How can I compare two arbitrary files on my computer with phpStorm?

Currently, the easiest way that I found to compare a project file with a non-project file is by copying the external file to the clipboard and clicking on "View-> Compare with clipboard".

It can be done only externally:
You can also open the difference viewer without running PhpStorm. This is done through the following command:
<path to PhpStorm executable file> diff <path_1> <path_2>
where path_1 and path_2 are paths to the files in question, which can be of various types, including jar.
From inside PhpStorm you can only compare files that are available in the project.

What I do for comparing two external sources (web page sources etc.)
1 - Open a new scratch file from "File" Menu -> "New Scratch File" and choose a file type
2 - Copy & Paste Source 1 to this new scratch file
3 - Either create a new scratch file for second source and click "Compare With" from "View" Menu
or
better just directly copy second to clipboard and from "View" Menu click to "Compare with Clipboard"

MacOS
Create a file in /usr/local/bin/ named PhpStorm
Paste this
#!/bin/sh
open -na "PhpStorm.app" --args "$#"
And make it executable
chmod +x /usr/local/bin/PhpStorm
And now you can do this
PhpStorm diff <path1> <path2>
Windows
Add PhpStorm bin to your PATH
setx PATH=%PATH%;C:\Program Files\JetBrains\PhpStorm\bin
Now you can do this
phpstorm.bat diff <path1> <path2>
Linux
Create a link to your PhpStorm launcher script :
# Path to PhpStorm installation may differ
ln -s /opt/phpstorm/bin/phpstorm.sh /usr/local/bin/phpstorm
Now you can do
phpstorm diff <path1> <path2>
Sources from jetbrains werbsite :
https://www.jetbrains.com/help/phpstorm/command-line-differences-viewer.html
https://www.jetbrains.com/help/phpstorm/working-with-the-ide-features-from-command-line.html

In phpStorm 2016.2 (and possibly some earlier editions) you can navigate to the external file via File >> Open... , which will open a tab showing the external file's content. You can then use View>> Compare with... to compare the external file to a file within your project.

Related

Eclipse can't see /usr/local folder on mac

I am developing a web application in Java on my mac.
The web application will run on tomcat.
I have installed tomcat in /usr/local/apache-tomcat.
When I try to set the tomcat runtime in Server->Runtime Environments, I am not able to see the folder /usr/local. how do I get eclipse to see the /usr/local/apache-tomcat directory?
I am able to see /usr/local when using the Go to Folder option in Finder.
I had similar problem with loading external jar files in /usr/local/ for Eclipse on Mac
The way i resolved this was to create a soft-link using ln -s to the folder in /usr/local to a visible folder and then loaded the jars.
ln -s source visible_location/link
Works for me.
I just got a similar problem, and the workaround i found is to copy/paste the path of your tomcat base directory, and it works fine:
Go to your tomcat base directory
pwd to get the path and copy it
Go to eclipse -> preferences -> servers -> runtime environments -> add button -> select apache tomcat version -> then next
At this step, instead of browsing, you can simply paste the copied path in the Tomcat installation directory field!
et voilà
My guess is that you have your finder settings that hide hidden folders. It is possible to show them by following the instructions in this article.
The easiest way to do this is to type the following in your terminal:
defaults write com.apple.finder AppleShowAllFiles TRUE
killall Finder
If you type out the full name of the installation folder instead of using the finder, does it work?
You can easily control hidden files writing this in bash_profile
alias hideOn='defaults write com.apple.finder AppleShowAllFiles TRUE'
alias hideOff='defaults write com.apple.finder AppleShowAllFiles FALSE'
alias kFinder='killAll Finder'
alias hOn='hideOn && kFinder'
alias hOff='hideOff && kFinder'
Then, reopen your terminal and write hOn. At root folder you will see hidden /usr. Just put it in your finder sidebar. Then write hOff and you will stop seeing the hidden files, but /usr will be always there at finder.

What is the directory of the current workspace in Eclipse

I used Eclipse to open a few external projecta and I am now wondering how to find out what the root directory of the current workspace is? I'm asking this question because in my scenario (using Eclipse to open external project), I think that the directory of the Eclipse workspace is different from the external project directories.
You can use:
File -> Switch Workspace -> Other
And the selected folder will be workspace's one.
An alternative would be looking at Window's title (it has the workspace folder on it {at least on Mac OS X}).
It is
File->Switch Workspace->Other. Once you select other you get the current workspace.
For Windows:
Create an "External tool" with following:
Location: C:\Windows\System32\cmd.exe
Arguments: /C "echo ${workspace_loc}"
Name it as you wish (like "Show workspace"). And you are done. Just run the "External tool" and the workspace path will be shown in Eclipse console.
Of course it can be easily done for Linux as well.

Open multiple Projects/Folders in Visual Studio Code

How do I open multiple projects/folders in a single Visual Studio Code instance, and open multiple files in single view? Does it has any option for future change request?
Not sure why the simplest solution is not mentioned. You can simply do File>New Window and open the other project in the new window.
Update
This is now available out of the box as of October 2017. From the blog post:
This was our #1 feature request - it's been a while coming but it's here now.
The complete documentation is here.
You can work with multiple project folders in Visual Studio Code with multi-root workspaces. This can be very helpful when you are working on several related projects at one time. For example, you might have a repository with a product's documentation which you like to keep current when you update the product source code.
Original answer
Currently the Insider channel of VSCode gives us this out of the box.
Read more from the blog post.
Update
As mentioned in several other answers here, this 'accepted' answer is outdated and is no longer correct. VS Code now has the concept of a 'workspace' which lets you add several 'root' folders to VS Code in the same window.
For instance, when working on a project in one folder that utilizes shared code held in a different folder, you can now open both the project folder and the shared folder in the same window.
To do this you use the Add folder to Workspace... command. VS Code then saves this configuration in a new file with a .code-workspace extension. If you double-click that file, VS Code will re-open with both folders present.
Original Accepted Answer (Outdated)
As described in The Basics of Visual Studio Code article:
"VSCode is file and folder based - you can get started immediately by opening a file or folder in VSCode."
This means the concept of solution and project files, like the .sln and .csproj, have no real function in VSCode other than that it uses these only to target and identify which language to support for Intellisense and such.
Simply put, the folder you open is the root you work with. But of course there is nothing from stopping you to open multiple windows.
As for the request features options, navigate to Help > Request Features which will redirect you to the UserVoice page of VSCode.
Support for multi-root workspaces is now enabled by default in the latest stable release [November 2017 release].
The File > Add Folder to Workspace command brings up an Open Folder dialog to select the new folder.
If you are using unix like OS, you can create a soft link to your target folder.
E.g. I want to see golang source while I am using VSCode. So, I create a soft link to go/src under my project folder.
ln -s /usr/local/go/src gosrc
Hope this helps!
Update: 11/28, 2017
Multi Root Workspaces[0] landed in the stable build, finally.
https://code.visualstudio.com/updates/v1_18#_support-for-multi-root-workspaces
[0] https://github.com/Microsoft/vscode/issues/396
You can open any folder, so if your projects are in the same tree, just open the folder beneath them.
Otherwise you can open 2 instances of Code as another option
On Windows it's possible to use mklink to create directory symbolic links to the needed folders. Then keep them together in a folder, and VSCode will list the content of these.
c:\>mklink /D c:\dev\MyWork\scripts c:\ProjA\scripts
symbolic link created for c:\dev\MyWork\scripts <<===>> c:\ProjA\scripts
c:\>mklink /D c:\dev\MyWork\styles c:\ProjB\styles
symbolic link created for c:\dev\MyWork\styles <<===>> c:\dev\ProjB\styles
This is very similar to #NeilShen's idea, I guess.
Multiple Folders in VS
Click ->File ->Add Folder to Workplace.
Step 1.
Choose which project to work ->Add(press)
Step 2.
October 2017 (version 1.18):
Support for multi-root workspaces is now enabled by default in the Stable release: https://code.visualstudio.com/updates/v1_18#_support-for-multi-root-workspaces
Now we can open multiple folders in one instance, Visual studio code has named as Workspace ("Area de Trabajo"). Take a look at the images, it´s very simple.
Or you can just select multiple folders and then click open.
Go to File> Open Folder, then select multiple folders you want to open and click Select Folder
Just put your projects in the same folder and simply open that folder in vscode.
Now your projects will appear like:
GROUP OF PROJECTS
PROJECT 1
Contents
Contents
PROJECT 2
Contents
Contents
It's not possible to open a new instance of Visual Studio Code normally, neither it works if you open the new one as Administrator.
Solution: simply right click on VS Code .exe file, and click "New Window"
you can open as many new windows as you want. :)
You can install the Open Folder Context Menus for VS Code extension from Chris Dias
https://marketplace.visualstudio.com/items?itemName=chrisdias.vscode-opennewinstance
Restart Visual Studio Code
Right click a folder and select "Open New Workbench Here"
Open New Workbench Here
You can open up to 3 files in the same view by pressing [CTRL] + [^]
What I suggest for now is to create symlinks in a folder, since VSCode isn't supporting that feature.
First, make a folder called whatever you'd like it to be.
$ mkdir random_project_folder
$ cd random_project_folder
$ ln -s /path/to/folder1/you/want/to/open folder1
$ ln -s /path/to/folder2/you/want/to/open folder2
$ ln -s /path/to/folder3/you/want/to/open folder3
$ code .
And you'll see your folders in the same VSCode window.
you can create a workspace and put folders in that :
File > save workspace as
and drag and drop your folders in saved workspace
You can use this extension known as Project Manager
In this the projects are saved in a file projects.json, just save the project and by pressing Shift + Alt + P you can see the list of all your saved projects, from there you can easily switch your projects.
To run one project at a time in same solution
Open Solution explorer window -> Open Solution for Project -> Right click on it -> Select Properties from drop down list (Alt+Enter)-> Common Properties -> select Startup Project you will see "current selection,single selection and multiple selection from that select "Current Selection" this will help you to run one project at a time in same solution workspace having different coding.
You can simply add folders (as many you want) in your workspace as shown in this image:
Image
And use them unhesitatingly.

How can I open all files in a directory with sublime text 2?

I am using windows and have successfully added sublime to the PATH. It seems that commands like -b for open in background do not work for whatever reason. My question is how can I open a directory with the command subl ./dir and open each file individually? Right now it adds it to the project and I would much rather it just open every file separately.
You can try
> subl dir/*
Alternatively, you can open the project in a dir > subl dir and then install EnhancedSidebar package in sublime. This allows you to select multiple file right click them and click edit. Hope this is what you're looking for.

Copy path/file name in Eclipse to clipboard

Is there a shortcut to copy the current path/file to the clipboard?
Just select the file tab and hit Ctrl+C to copy file basename into clipboard.
Hit Alt+Enter to bring up the file properties with absolute path and copy it manually.
Additionally you can use an Eclipse macro plugin that can do the steps in one go:
http://sourceforge.net/projects/practicalmacro/files/
There is Copy Qualified Name function in Eclipse, it will copy the full name of the element you select (or element on cursor).
For example :
/MyProject/src/app/Application.java : when you select Application.java in Package Explorer
java.util.HashSet<String> : when you copy while cursor at HashSet<String>
However, it required you to select the element you want.
So, here is what I do.
Make your Package Explorer link with editor, you can active this by click the double-arrow icon at top-right corner.
Set up a hot-key for Show View (Package Explorer) ex : Alt + 1
Set up a hot-key for Copy Qualified Name ex : Alt + Ctrl + Shift + c
Whenever I need these information in current file, I just press the hot-key to call my Package Explorer Since it links with editor and will always select the file in current editor, you can just copy with the hot-key. Then you can use F12 back to your editor, or simply ESC if you use fast view.
Not perfect, but it works :D
There is yet another plugin that supports copying the path along with a number of other related functions:
http://code.google.com/p/pathtools/
Just search Eclipse Marketplace within Eclipse for 'pathtools'.
You can do it with a single keystroke by configuring an Eclipse external tool (a much underused tool in my opinion). Takes about a minute to configure the first time you use it but then it's always available. Here's a YouTube video demonstrating the technique.
An alternative to the answer of Rangi Lin, which provides some additional functionality: The StartExplorer plugin for Eclipse. The solution mentioned by Rangi Lin doesn't work in all cases. It doesn't work in my case e.g. in the Team Synchronizing perspective in the Synchronize view. However, the StartExplorer's context menu command "Copy Resource Path To Clipboard", as well as the default keyboard shortcut for it (Ctrl+Alt+C) works also there.
The advantage of this plugin is that it additionally allows you to open the file manager at the location of the selected file etc.
Another option is EasyShell. It has a single entry in the context menu, under which you'll find copying of the path, opening explorer, a dos box and others (configurable).
Alt+Enter - open properties
Alt+L - go to path location
Shift+End - select path
Ctrl+C - copy
Go to Project Explorer View in Eclipse which is at the left panel.
Click on link with editor.
After linking, your opened file will get selected.
Right-click on the selected file. You will get the option 'Copy Qualified Name' which is just below 'Copy' option.
Open the directory where your project resides. e.g. if your project is 'abc' and it's in the directory 'project', go to the 'project' directory.
In the folders address bar, the address will be like this: D:\project.
Paste in front of this address like: D:\project/abc/source/com/connect.java
Delete the java file name(connect.java) and press enter.
You will be in folder 'com'.
The video demonstrating the technique was prepared for Eclipse in Windows. In Linux you have to change:
External Tools Configurations - Location: /home/username/path/to/script.sh
External Tools Configurations - Arguments: ${selected_resource_loc}
External Tools Configurations - Standard Input and Output - CHECK "Allocate console (necessary for input)"
Create a script /home/username/path/to/script.sh as follows
echo $1
echo $1 > /home/username/clipboard_tmp.txt
xclip -in -selection clipboard /home/username/clipboard_tmp.txt
xclip -selection clipboard -o
I don't know why, but following command echo $1 | xsel --clipboard doesn't work in the script.
It was checked in Ubuntu 12.04 LTS and Eclipse IDE for C/C++ Developers (Version: Kepler Service Release 2, Build id: 20140224-0627)
In Eclipse Version: 2020-03 (4.15.0)
In Project Explorer
Select your file> right Click> Copy Qualified Name