Error with autocomplete in Eclipse - eclipse

I am running Eclipse 4.6.3 with GoClipse and NodeClipse installed. I have configured Go in Preferences -> Go.
I want autocomplete to work for Go. However, it is giving me the error: writing to process input broken pipe
See screenshots below for error and configuration.
How do I fix this problem?

At least on the second page, all of the paths seem wrong. You supplied the path to the source code where the dialog asks for the path to the executable.
To make sure you have all the tools installed run the following commands in the terminal:
go get -u github.com/nsf/gocode
go get -u golang.org/x/tools/cmd/guru
go get -u github.com/rogpeppe/godef
Now, for each of the tools run
which <tool>
# example:
which guru
# => /Users/user/gocode/bin/gocode
Copy the output into the Executable: field in the config screen.
For gofmt you should be able to simply tick "Use default location"

Related

Visual Studio Code - PHPCS error (Unknown error ocurred. Please verify that returns a valid json object)

I am trying to set up the PHPCS plugin, but so far I am only getting this error:
phpcs: Unknown error ocurred. Please verify that /home/[user]/Documents/offprojects/vet_direct/vetsdirectapp/vendor/bin/phpcs --report=json -q --encoding=UTF-8 --error-severity=5 --warning-severity=5 --stdin-path=/home/[user]/Documents/offprojects/vet_direct/vetsdirectapp/app/Http/Controllers/JobController.php - returns a valid json object.
I followed the installation guide from the plugin page and installed PHPCS both globally and in the project. Also, the command in terminal shows this error:
zsh: command not found: phpcs
Any idea what is wrong here?
This might not help you, but for me, the executable path wasn't correct and the version of PHPCS didn't support PHP 7, it was still using PHP 5.
I'm going to assume you're on Linux based OS.
Since you have already installed PHPCS globally, access the phpcs file. This should be somewhere like ~/.config/composer/vendor/squizlabs/php_codesniffer/bin if you're on Debian based Linux OS (like Ubuntu Focal Fossa 20.04LTS). But it might differ depending on versions.
If you use a text editor to peek the phpcs file inside it (this will be the same on your Executable Path), it might say PHP 5, that's how I found I needed to upgrade mine.
To upgrade your PHPCS do composer global require "squizlabs/php_codesniffer=*" this might fix your issue. After that, you might need to fix your Executable Path again, I had to do mine.
To edit the executable path on Visual Studio Code Command + , (or go to settings) then search for PHP CodeSniffer. Go down to Executable Path and make sure it's correct.
This might not work, but it's worth a try.
After trying a lof of different things, this is what worked for me. I'm on a Mac and using Zsh.
First, installed PHP Code Sniffer (phpcs) with Composer, as Hugo suggested on the answer above:
composer global require "squizlabs/php_codesniffer=*"
But then, I had to edit my .zshrc and added this line:
export PATH=/Users/YOURUSER/.composer/vendor/bin:$PATH
After that, close the Terminal and I was able to run phpcs -h
In my case an error was being thrown by various processes "Could not load xdebug because it is already loaded". This did not show in VSCode, but did if I ran php -v or php --ini.
This is what cleared the error for me:
Edit the /etc/php/8.0/apache2/conf.d/xdebug.ini file and comment out the line zend_extension=xdebug.so. Restart apache with sudo systemctl restart apache2, then try php -v. The "Could not load xdebug because it is already loaded" error should be gone. Restart VSCode and this phpcs error should stop showing.
I have VSCode configured to debug php and have the xdebug configuration settings in both the etc/php/php8.0/apache2/php.ini and etc/php/php/8.0/cli/php.ini files.
How I discovered this is I downloaded the source code and searched for where that error was being thrown. What I found was that ANY error in stderr outside of a very narrow range gets this error message. I had noticed this error showing in my terminal, and I researched how to clear it. When I did, the VSCode phpcs error went away!
On Windows:
Open the XAMPP Control Panel.
Apache -> Config -> php.ini
Search for zend_extension=xdebug.so or something the like and delete it.
Restart Apache.
Try again.
In my case, It was happening due to XDebug and resolved after disabling xdebug from Xampp.
Goto C:\xampp\php\php.ini
find and disable (add ;) before following lines
Change :
xdebug.mode=debug
xdebug.start_with_request=yes
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
to :
;xdebug.mode=debug
;xdebug.start_with_request=yes
;zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
Restart Apache and then vscode. It should fix that.

How to set up GoCode for GoClipse?

After reading the guide on https://github.com/nsf/gocode, I tried the command go get -u -ldflags -H=windowsgui github.com/nsf/gocode. I don't get any response after this command.
I also found that there is a place in GoClipse that can let me input the path of GoCode. So, I think maybe I already have GoCode in my windows pc but what is its location?
go get won't output anything unless there's an error.
The location for anything you install with the go tools is $GOPATH/bin, $GOPATH depends on your environment.
If you're not sure where it is, run go env and it will print a list of the environment variables that Go uses, including GOPATH.
just go to the command line and type: go env
Navigate to GOPATH directory in windows, you will find bin folder underneath, open the folder, you will see all the required exe files installed, just mentioned them in eclipse,
Example from my env:
Check the GOPATH folder
Navigate to the GOPATH folder\bin, and make sure that the required exe file are installed
Set the exe paths in eclipse
Here is the result
Navigate to Window -> Preferences -> Go -> Tools
Easiest and quickest way is to click the download buttons under gocode, guru and godef.
Eclipse will automatically do the rest of things for you.

How to open Eclipse -- tegra development pack -- in ubuntu

After i installed "tegra development pack" on my ubuntu, the installation opened eclipse IDE for me and then i closed and then figured out that there isn't any shortcut or anything i could launch it from.
Update:
I followed "Venzen" solution till step 3 and used the filtering command. That showed me that there is another folder named "NVPACK" is located in username > NVPACK > eclipse which I didn't know about, I kept locking tipping in "eclipse" in the terminal.
Also, there is something stupid I did I would like to share; what happened here is that I kept looking at NVPACK installation folder at windows files not in linux files. (I'm using ubuntu in windows).
You could open a terminal and try to launch Eclipse from the command line:
$ eclipse
If this does not work it could mean that the eclipse binary was installed somewhere outside of your PATH and you will have to look for it. I am not familiar with Tegra, but here is a general purpose "process of elimination" to find a file in *nix:
update the locate database
$ sudo updatedb
use the which command to interrogate the updated locate database
$ which eclipse
you should have found it by now. If you haven't all is not lost - run the locate command just for good measure
$ sudo locate eclipse
locate could potentially output lots of matches since it outputs any match to your search term whether its a file or a folder. If the output of locate scrolls off the screen then use grep to filter out only matches where eclipse is a file:
$ sudo locate eclipse | grep '.*eclipse$'
If this produces several matches then choose the eclipse file which resides in a bin folder.
If, by now, a file called eclipse has not yet shown itself, then there are 2 more options left - a long way and a short way...
use the find command
post the method (or source) from where you installed
either way, kindly post here should steps 1-3 above not reveal eclipse.

Debugging php-cli scripts with xdebug and netbeans?

I have managed to initiate php-cli script debug session from the IDE itself, but I need to start the debugging session from the shell / command line. These are rather complex maintenance PHP scripts which take a lot of input parameters, so entering arguments from within Netbeans is a bit cumbersome.
I have done it before with Zend studio: https://zend18.zendesk.com/hc/en-us/articles/203838096-Debugging-PHP-CLI-Scripts, but now I need to get it working with Netbeans.
I got this working on Ubuntu/Netbeans by:
copying the xdebug config lines from the /etc/php5/apache2/php.ini file into /etc/php5/cli/php.ini
setting an environment variable with the name of the debug session (you can get this from the query string in the url of the page netbeans launches when you start debugging) so the command is: export XDEBUG_CONFIG="idekey=netbeans-xdebug"
Then it's simply a case of starting debugging in netbeans and doing php myscript.php at the command line.
Note:
If you want to debug remotely using netbeans you need to use Debug File on the file that is being run from the command line, not normal Debug.
Add xdebug.remote_autostart=On to your php.ini file or add -dxdebug.remote_autostart=On as parameter to the PHP binary call (php -d... script.php).
See http://xdebug.org/docs/remote
I will put all together, the following is that works for me.
file:
/etc/php5/cli/php.ini
zend_extension="/usr/lib/php5/20121212/xdebug.so" -> xdebug bin path
xdebug.remote_enable=on
xdebug.remote_host=127.0.0.1
xdebug.remote_handler="dbgp"
xdebug.remote_mode="req"
xdebug.remote_port=9000 -> same port configured in netbeans debugging tab
xdebug.idekey="netbeans-xdebug" -> same ide configured in netbeans debuggin tab
xdebug.remote_autostart=1
then, without any other parameter
php script.php
I had the same problem, my solution was this:
Environment: Netbeans 8.2 under windows (apache+php)
Assuming you already have PHP and NetBeans configured to debug
code using Xdebug (http://wiki.netbeans.org/HowToConfigureXDebug#Notes_on_Windows_Configuration)
On netbeans create new Configuration (“Project Properties” > “Run configuration” > “New…”
In the new Configuration set Do Not Open web Browser (“Advanced” > “Do Not Open web Browser”)
Set active the new configuration created (drop down in tool bar)
Set breakpoint for debug
Open debug (CTRL+F5)
Open Terminal window (“Tools” > “Open in Terminal”)
Type in terminal: $ export XDEBUG_CONFIG="idekey=netbeans-xdebug" (the value "netbeans-xdebug" must coincide with “Tools” > “Options” > “Debugging” > “Session ID”)
Type in terminal: $ php.exe -f "C:\Apache24\htdocs\www.SiteName\ScriptName.php" -- "Arg1=x&Arg2=y"
Follow debug…
I had the same problem my solution was this:
In Netbeans > the project window > right click on the php project > properties > Run configuration.
Create a New Configuration.
Fill the correct values:
Run as "script"
set php interpreter
change index file in my case it was "cron/index.php".
You can use the Dephpugger project if you dont want to configure xDebug for your IDE (i hate configurations).
https://github.com/tacnoman/dephpugger
You can run the debugger in terminal, like ipdb for Python and byebug for Ruby.
Make sure you also setup DBGP_IDEKEY value, because usually it is not idekey.
For example on Linux:
export DBGP_IDEKEY="netbeans-xdebug"
export XDEBUG_CONFIG="netbeans-xdebug=netbeans-xdebug"

Launch mac eclipse with environment variables set

My company provides an eclipse based development environment which needs some environment variables setting up for the underlying toolchain so multiple versions can be installed concurrently and not take over the system.
I want to provide an icon in finder or the dock which sets these then launches eclipse so customers cannot accidentally launch eclipse without the environment being set. This is what I have tried so far:
Setting environment in Info.plist
for eclipse:
This should be a nice way to do it
but I cannot make it add to the
existing path (like export
PATH=/myapp/bin:$PATH).
bash script wrapping eclipse:
I created a bash script called
eclipse.command to set the
environment then launch eclipse.
This opens a terminal window as well
as the eclipse icon and allows
people to "Keep on dock" for the
bare eclipse. I cannot put
eclipse.command on the dock as it is
not an application.
Applescript wrapping eclipse.command:
An Applescript wrapper around
eclipse.command makes it look like
an app and prevents the terminal
window appearing. Unfortunately I
now get a dock icon for the
applescript and one for eclipse so
can still keep the bare eclipse on
the dock.
Any suggestions? Am I going about this in completely the wrong way?
There is an alternate solution which involves replacing the executable that is run by MacOS X when the user launches the Eclipse application with a shell wrapper that sets up the environment.
Create an empty text file called "eclipse.sh" in the Eclipse application bundle directory /Applications/eclipse/Eclipse.app/Contents/MacOS.
Open the eclipse.sh in a text editor an enter the following contents:
#!/bin/sh
export ENV_VAR1=value
export ENV_VAR2=value
logger "`dirname \"$0\"`/eclipse"
exec "`dirname \"$0\"`/eclipse" $#
In the example ENV_VAR1 and ENV_VAR2 are the environment variables being set up. These variables will be visible to processes launched from within Eclipse. The logger command will just log the path of the eclipse executable to the system.log as a debugging aid.
In the Terminal set the executable flag of the shell script eclipse.sh, i.e.:
chmod +x /Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse.sh
Open the Eclipse.app Info.plist and change the value for the key CFBundleExecutable from eclipse to eclipse.sh.
MacOS X does not automatically detect that the Eclipse.app's Info.plist has changed. Therefore you need to force update the LaunchService database in the Terminal by using the lsregister command:
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/eclipse/Eclipse.app
The next time you launch Eclipse.app from the Dock or from the Finder the environment variables should be set.
I created the following:
alias start-eclipse='open /Applications/eclipse/Eclipse.app'
If you run start-eclipse from the command line, all env vars will be picked up. This way, you only need to maintain a single set of env vars across both command-line and eclipse environments.
Take a look at a related question: Environment variables in Mac OS X.
Basically, this involves the creation of a ~/.MacOSX/environment.plist file.
Log out and Log in for the environment.plist to get picked up by .App's
This worked perfectly in OS X Yosemite:
Open /Applications/Automator.
When the drop-down appears asking you what kind of document you want to create, choose "Application."
In the second-from-the-left list, double-click "Run Shell Script."
In the right side delete the "cat" that gets put there automatically, and replace it with this:
source ~/.bash_profile && /Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse
Now go to File->Save, and save the application to your Applications directory. I named it "Eclipse" with a capital 'E' so as not to conflict with the "eclipse" directory I already had. For good measure, you can even give it the Eclipse icon by selecting the real eclipse app, pressing command-i, selecting the icon, pressing command-c, then selecting the automator "Eclipse" app, pressing command-i, selecting the icon, and pressing command-v.
Now you can open the app, or even drag it to your dock. Note that if you start it, the "real" eclipse will still show up in your dock as a separate icon, but you can't have everything. :)
sakra's answer above is awesome, except is doesn't automatically inherit your existing bash environment. To ensure eclipse.sh picks up your existing bash environment, modify eclipse.sh to use bash instead of sh and add a line to source your existing ~/.bash_profile thus:
#!/bin/bash
source ~/.bash_profile
logger "`dirname \"$0\"`/eclipse"
exec "`dirname \"$0\"`/eclipse" $#
None of the above worked for me. you have to set Eclipse -> Preferences -> Terminal -> Arguments set to --login
That will instruct Eclipse to login with your account just after opening Terminal.
See screenshot:
Reference: https://marketplace.eclipse.org/comment/4259#comment-4259
Link to Eclipse doesn't use the path set in .bashrc
Create simple script
#!/bin/bash
source /home/user/.environment_variables
/home/user/eclipse_cpp/eclipse -Duser.name="My Name"
2.
Next put your all system variables in file /home/user/.environment_variables (any file you want)
My looks like:
export COCOS_ROOT=/home/user/Projects/edukoala
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
3.
Now you can delete your variables in .bashrc and put line
source /home/user/.environment_variables
Everything works fine :)
As pointed out in https://github.com/atom/atom/issues/7045, the environment variables can be loaded automatically, without explicit source ~/.bash_profile by using
#!/usr/bin/env bash -l
instead of
#!/bin/bash
source ~/.bash_profile
after that, in both cases, follows
exec "`dirname \"$0\"`/eclipse" $#
It works great for me, thanks for all previous work.
After setting env variables in .bash_profile.
Simply open the application through terminal!
open /Application/{path/to/app}.app