Gert-dev / php-ide-serenata

Atom IDE package that integrates the Serenata server to provide PHP code assistance
https://serenata.gitlab.io/
Other
275 stars 22 forks source link

How to go to definition with ctrl + left mouse click? #511

Open rrolla opened 3 years ago

rrolla commented 3 years ago

Cannot understand how can I navigate in atom to the method definition inside class, like PhpStorm (ctrl + left mouse click)

Gert-dev commented 3 years ago

It is the same in Atom if you use hyperclick provided by atom-ide-ui. Since you also posted #510, are you sure Serenata is indexing your project correctly? Do you see anything being indexed the first time on opening the project or any errors in the developer tools console?

rrolla commented 3 years ago

I will try to install hyperclick, and post my findings.

Quick question is this somewhere in your plugin documentation mentioned that you need to use hyperclick?

Gert-dev commented 3 years ago

Not directly since atom-ide-ui is already a hard dependency, causing it to be installed before you can use this package (or this one won't start); if it's not installed, you see a popup after installation that you need to install it.

atom-ide-ui includes a version of hyperclick that is necessary for this functionality to work. There is some documentation about it here.

rrolla commented 3 years ago

After re-enabling https://github.com/facebookarchive/atom-ide-ui package I was able to ctrl+click once and it works, but after atom restart doesn't work anymore.

rrolla commented 3 years ago

It is the same in Atom if you use hyperclick provided by atom-ide-ui. Since you also posted #510, are you sure Serenata is indexing your project correctly? Do you see anything being indexed the first time on opening the project or any errors in the developer tools console?

I can see that at project opening in the bottom near line endings there is a yellow blinking indicator and after some short time it gets green

information about system:

apm list --installed --bare
Stylus@3.2.0
atom-autocomplete-php@0.25.6
atom-beautify@0.33.4
atom-debug-ui@1.0.4
atom-ide-ui@0.13.0
atom-shortcuts@0.0.2
autocomplete-paths@2.12.9
autocomplete-tailwind@0.8.3
busy-signal@2.0.1
docblockr@0.13.7
docker@0.8.0
emmet@2.4.3
file-icons@2.1.44
gitlab-integration@0.4.8
highlight-selected@0.17.0
ide-docker@0.1.0
ide-php@0.7.18
ide-vue@0.1.9
intellij-idea-keymap@0.2.3
intentions@1.1.5
language-blade@0.46.0
language-docker@1.1.8
language-vue@0.26.0
language-vuetify@0.3.0
linter@3.1.1
linter-docker@0.3.2
linter-eslint@8.5.5
linter-php@1.6.1
linter-phpcs@1.7.6
linter-phpmd@2.0.2
linter-scss-lint@3.2.1
linter-ui-default@2.1.4
minimap@4.29.9
php-cs-fixer@4.2.0
php-debug@0.3.5
php-ide-serenata@5.4.0
php-integrator-navigation@1.2.1
php-integrator-refactoring@1.4.1
project-manager@3.3.8
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.1 LTS
Release:    20.04
Codename:   focal
php -v
PHP 7.4.3 (cli) (built: Oct  6 2020 15:47:56) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
php -m
[PHP Modules]
calendar
Core
ctype
date
dom
exif
FFI
fileinfo
filter
ftp
gettext
hash
iconv
json
libxml
mbstring
openssl
pcntl
pcre
PDO
pdo_sqlite
Phar
posix
readline
Reflection
session
shmop
SimpleXML
sockets
sodium
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tokenizer
xml
xmlreader
xmlwriter
xsl
Zend OPcache
zlib

[Zend Modules]
Zend OPcache
Gert-dev commented 3 years ago

Strange that it works once, that implies at least some parts of the code got indexed successfully.

Did you have a chance to check out the developer tools console (Ctrl-Shift-I I believe, but you can also find it in the command palette somewhere).

krzysztof-sikorski commented 3 years ago

I also had similar problems with the hyperclick feature, but after uninstalling all packages I discovered that the same key combination (Ctrl+Click) is used in Atom's core engine to trigger "Multi Cursor On Click" feature.

I don't know why Ctrl+Click seemed to work right after installing the hyperclick package and only stopped working later, I guess this is a bug in Atom's package installer that temporarily gives higher priority to package's bindings over core engine's bindings, and normally core engine has priority over packages.

Anyway, I could not find any way to override binding for Ctrl+Click or define some other combination of keys+Click to trigger hyperclick navigation, the keymap.cson file is no help here because it only configures "pure-keyboard" bindings... so I think the only workaround for now is to just disable that "Multi Cursor On Click" feature in Atom settings. It is located in Editor tab, for some unknown reason it was put in the middle of line height settings...