erichard / SublimePHPCompanion

A Sublime Text plugin that provides cool stuff for PHP 5.3+ coding session.
MIT License
931 stars 115 forks source link

find_use expand_fqcn and goto_definition_scope don't work #76

Open thatdoorsajar opened 8 years ago

thatdoorsajar commented 8 years ago

I have closed sublime deleted index, opened sublime and run the GoTo Project Symbols which has reindexed sublime successfully. find_use expand_fqcn and goto_definition_scope are still not working on any assigned key combo or through running the commands from the Command Palette.

import_namespace and insert_php_constructor_property work as expected so the package is working.

find_use and expand_fqcn don't have any output in the console or bottom bar when they are run.

goto_definition_scope has no output in the console but it does say "Unable to find {ClassName}" in the bottom bar when run.

I was successfully running this package on a different machine but this new one no luck! Any suggestions?

elboletaire commented 8 years ago

Same here, using latest dev build (which right now is 3113)

jleger98 commented 8 years ago

Ditto. Same issue, using ST3 v3114 and latest from PC.

hughsaffar commented 8 years ago

Did anyone found a workaround?

thatdoorsajar commented 8 years ago

@hughsaffar not for me atm

iamanders commented 8 years ago

Same problem here, with build 3113

iamanders commented 8 years ago

I did some digging around in the code. Seems like the row below is always returning an empty array, even when hardcoded a symbol that exists in my project.

files = window.lookup_symbol_in_index(symbol)

https://github.com/erichard/SublimePHPCompanion/blob/master/php_companion/utils.py#L18

Is this a Sublime bug maybe? This is above my Sublime skills, otherwise I would do a PR.

EDIT: Maybe related to this? https://github.com/sublimehq/Packages/issues/410

erichard commented 8 years ago

Sorry guys For not replying here. I just don't see what I can do as I can't reproduce the problem on my machine.

As @iamanders say, it could be a Sublime bug with the index engine. Hopefully the next build will fix this.

leandromatos commented 8 years ago

It's too bad work without this feature, it has saved me a good time.

iamanders commented 8 years ago

Just upgraded to the last beta build (3118) and the problem remains.

erichard commented 8 years ago

Maybe an issue is referenced in sublime core issue tracker. Please take a look at https://github.com/SublimeTextIssues/Core

elboletaire commented 8 years ago

It works for me now, using 3118 under both Windows and Linux :\

iamanders commented 8 years ago

Thats weird, works for me too now! Same version (3118) as my last comment. Don't think I have made any config changes, or installed/removed any plugins since then. Really happy that it's working now.

elboletaire commented 8 years ago

Same here, it was not working yesterday. It works today... really weird.

thatdoorsajar commented 8 years ago

This seemed to be an issue with Sublime Text core. Now working in Sublime Text Dev Build 3118 - https://www.sublimetext.com/3dev

leandromatos commented 8 years ago

Still not working here ...

jleger98 commented 8 years ago

did not work for me as well. I'm on a MBP.

leandromatos commented 8 years ago

I disabled all plugins and does not work!

Is there a way to force a reindex of the Sublime files?

elboletaire commented 8 years ago

This seemed to be an issue with Sublime Text core. Now working in Sublime Text Dev Build 3118 - https://www.sublimetext.com/3dev

I don't think so if there weren't sublime text update. With build 3118 was NOT working, and a few days later it was working.

And as some users indicate, it's not working for them.

erichard commented 8 years ago

@leandromatos The only way I know to force a reindex

  1. Close ST
  2. Delete existing index ($HOME/.config/sublime-text-3/Index)
  3. Open a directory or a project
  4. The search console must say recreating index at some point
  5. The status bar show the indexation process (a growing percentage)

Please make sure you don't have any settings that prevent the indexation like index_files or index_exclude_patterns.

leandromatos commented 8 years ago

@erichard A sublime-text-3 folder not exists in ~/.config =(

leandromatos commented 8 years ago

@erichard The index directory path is ~/Library/Application Support/Sublime Text 3/Index.

But, I removed the directory and the error continued: Unable to find ClassName.

jleger98 commented 8 years ago

Followed the steps, got a recreated index message, but still no go when i hit my keybinding for "find_use"

{ "keys": ["f10"], "command": "find_use" },

Using Dev version 3119 of SL3

I am not however getting the error leandromatos is getting.

In the console I am seeing: Unable to open /Users/joel/Library/Application Support/Sublime Text 3/Packages/Default/Default (OSX).sublime-keymap

looking in that directory, there is no Default folder. Seems like that might be an issue? Not sure how to re-create.

jleger98 commented 8 years ago

ok, actually found that default (OSX).sublime-keymap in the User folder, created a default folder and copied it over. now I no longer get that error, but still "find_use" does not work.

Gimcrack commented 8 years ago

I had the same issue even after installing 3119. I removed the PHPCompanion package and reinstalled and the problem went away.

leandromatos commented 8 years ago

@Gimcrack I tried this, but doesn't work!

bgatellier commented 8 years ago

This problem appears today, I have no idea why.

Tried to add a {} in the User settings of the package (which was even not created in my case), and everything is now working again as expected.

I remembered that I've already have seen this workaround for another package, but I am not able to remember which one or where did I find the solution.

Hope this could help someone :)

lessmind commented 8 years ago

@bgatellier 's way not working for me either, tried everything mentioned in this thread, still not working, any updates?

bobby-drk commented 8 years ago

I tried a few of the fixes above with no avail. The console doesn't show any activity. What I did learn is that I select the method (instead of the class) it "works." Rather it fires, but doesn't import properly.

In the Example below if I select the method getStates, and then fire expand_fqcn it adds the path to the method.

Before: $states = Geo::getStates();

After: $states = Geo::App\Helpers\getStates();

Also if I fire find_use it will import use App\Helpers\getStates instead of App\Helpers\Geo

benjivm commented 8 years ago

I have tried everything in this thread to no avail, I'm running Sublime Text 3 Build 3114.

nickclasener commented 8 years ago

What did it for me was removing vendor from "folder_exclude_patterns":["vendor",]

erichard commented 8 years ago

@bobby-drk You need to have your cursor on the Geo word for this feature to work. Sublime index classes, functions and variables and treat them as symbols. So you have to hover the right symbol :)

bobby-drk commented 8 years ago

@erichard

That's what I'm saying. Having my cursor on the word Geo does nothing. The only time anything gets imported is if I have my cursor over the method name.

thatdoorsajar commented 8 years ago

Now using the newest release build of Sublime Text 3 (3126) with complete uninstall of 3114 and reinstall 3126 with reinstall of PhpCompanion and the problem as I outlined in initial issue is exactly the same. I have tried all suggestions in this thread with no success even to the level @bobby-drk outlined. Can provide more info if needed.

elboletaire commented 8 years ago

For me there are sometimes which does not work. Nothing seems to take effect and the day after everything works as expected. Really annoying..

jdrzejb commented 8 years ago

Here's what worked for me:

  1. Quit Sublime Text
  2. Make a backup of ~/Library/Application Support/Sublime Text 3/Packages/User
  3. Remove everything from ~/Library/Application Support/Sublime Text 3
  4. Start Sublime Text
  5. Install Package Control
  6. Remove ~/Library/Application Support/Sublime Text 3/Packages/User
  7. Restore ~/Library/Application Support/Sublime Text 3/Packages/User from backup
  8. Wait till all packages install again
  9. Restart Sublime Text

It took me about 10 minutes and all settings were saved

jleger98 commented 8 years ago

This worked for me! I had to re-map my hot key for the find_use command - which I may have removed previously - but this worked like a charm. Using build 3126. Thanks @jdrzejb

stephenoldham commented 7 years ago

@jdrzejb Worked for me too. Just had to wait for the sublime to reindex and I was away :)

Using build 3126.

erichard commented 7 years ago

Can you all try the @jdrzejb workaround above. Seems we are about could close that awful issue :pray:

leandromatos commented 7 years ago

Worked for me too (in two computers) 🎉 #witchcraft hahaha

joshwhatk commented 7 years ago

Hmmm... I was having the same issue and simply set up a config file (PHP Companion.sublime-settings) and that got it working... ¯\_(ツ)_/¯

erichard commented 7 years ago

So is it fixed ? I hope so :smile:

Is anyone still having problem ?

benjivm commented 7 years ago

@erichard I think this might be a caching issue, per @nickclasener's suggestion, at least his method is what got it working again for me on two different workstations. So it's not that PHP Companion ever stops working or is malfunctioning, just that it's taking forever to cache everything on medium-large projects since the vendors folder can get massive.

thatdoorsajar commented 7 years ago

Package is now working for me. @jdrzejb workaround didn't solve the problem. I'm working on Windows machine and can't be sure that I followed exactly. What did work this time however, is a complete uninstall and reinstall of sublime text.

If everyone is happy I can close the issue?

XanManZA commented 7 years ago

Want to chime in here with a solution for Windows users:

  1. Make a backup of your Sublime Settings and Key Bindings
  2. Close Sublime Text 3
  3. Navigate to C:\Users\{YourUserHere}\AppData\Roaming\Sublime Text
  4. Delete the folder "Installed Packages"
  5. Open Sublime Text 3 again
  6. Wait for re-indexing

I've waited a few hours and tried again with success so crossing my fingers this is a semi-permanent solution

elboletaire commented 7 years ago

@XanManZA your "solution" makes sublime text unresponsive. And @jdrzejb solution didn't worked for me 😢

MicroDroid commented 7 years ago

Hmm, I really wonder what was on my mind when I disabled indexing in my Sublime Text config :eyes:

keevitaja commented 7 years ago

I am experiencing this on stable 3143.

I think it started after i upgraded, but i was working on a legacy php and javascript for last days. So i cannot know for sure.

I also deleted the sublime folder and tried with a clean st3 + php companion. Still the same.

But find namespace is working.

And this is what i get in console when doing find_use

Traceback (most recent call last):
  File "/opt/sublime_text/sublime_plugin.py", line 818, in run_
    return self.run(edit)
  File "php_companion.commands.find_use_command in /home/user/.config/sublime-text-3/Installed Packages/PHP Companion.sublime-package", line 17, in run
  File "php_companion.utils in /home/user/.config/sublime-text-3/Installed Packages/PHP Companion.sublime-package", line 40, in find_symbol
  File "php_companion.utils in /home/user/.config/sublime-text-3/Installed Packages/PHP Companion.sublime-package", line 49, in find_in_global_namespace
  File "./python3.3/subprocess.py", line 576, in check_output
  File "./python3.3/subprocess.py", line 819, in __init__
  File "./python3.3/subprocess.py", line 1448, in _execute_child
FileNotFoundError: [Errno 2] No such file or directory: 'php'

edit: i downgraded to my old installation, and still the same issue... any help would be so cool!

RESOLVED:

So this is a case for Mulder and Scully but i solved it.

In my sublime-text-3/Packages/User/ folder i had a file PHP Companion.sublime-settings

{
    "allow_use_from_global_namespace" : true
}

After i deleted it find_use started working. Also setting the key to false, solves to problem.

ninjaparade commented 6 years ago

I just ran into this issue on stable 3143 and @keevitaja solution worked for me.

erichard commented 6 years ago

@keevitaja This setting make a call to the php cli. Seems that you don't have php installed on your system.

keevitaja commented 6 years ago

correct, i use docker to develop php apps