diff --git a/lib/goto/class-provider.coffee b/lib/goto/class-provider.coffee index f5d9aa2..00d5add 100644 --- a/lib/goto/class-provider.coffee +++ b/lib/goto/class-provider.coffee @@ -3,8 +3,8 @@ AbstractProvider = require './abstract-provider' module.exports = class ClassProvider extends AbstractProvider - hoverEventSelectors: '.syntax--entity.syntax--inherited-class, .syntax--support.syntax--namespace, .syntax--support.syntax--class, .syntax--comment-clickable .syntax--region' - clickEventSelectors: '.syntax--entity.syntax--inherited-class, .syntax--support.syntax--namespace, .syntax--support.syntax--class' + hoverEventSelectors: '.syntax--entity.syntax--inherited-class, .syntax--support.syntax--namespace, .syntax--support.syntax--class, .syntax--typehinted .syntax--type, .syntax--comment-clickable .syntax--region' + clickEventSelectors: '.syntax--entity.syntax--inherited-class, .syntax--support.syntax--namespace, .syntax--support.syntax--class, .syntax--typehinted .syntax--type' gotoRegex: /^\\?[A-Z][A-za-z0-9_]*(\\[A-Z][A-Za-z0-9_])*$/ ###* diff --git a/lib/goto/function-provider.coffee b/lib/goto/function-provider.coffee index 2762076..339984b 100644 --- a/lib/goto/function-provider.coffee +++ b/lib/goto/function-provider.coffee @@ -5,9 +5,9 @@ AbstractProvider = require './abstract-provider' module.exports = class FunctionProvider extends AbstractProvider - hoverEventSelectors: '.syntax--function-call' - clickEventSelectors: '.syntax--function-call' - gotoRegex: /(?:(?:[a-zA-Z0-9_]*)\s*(?:\(.*\))?\s*(?:->|::)\s*)+([a-zA-Z0-9_]*)/ + hoverEventSelectors: '.syntax--function-call .syntax--function, .syntax--method-call .syntax--function' + clickEventSelectors: '.syntax--function-call .syntax--function, .syntax--method-call .syntax--function' + gotoRegex: /(?:(?:[a-zA-Z0-9_]*)\s*(?:\(.*\))?\s*(?:->|::)\s*)+([a-zA-Z0-9_]*)\(/ ###* * Goto the class from the term given. diff --git a/lib/goto/property-provider.coffee b/lib/goto/property-provider.coffee index ccfbe66..b627b90 100644 --- a/lib/goto/property-provider.coffee +++ b/lib/goto/property-provider.coffee @@ -5,8 +5,8 @@ AbstractProvider = require './abstract-provider' module.exports = class PropertyProvider extends AbstractProvider - hoverEventSelectors: '.syntax--property' - clickEventSelectors: '.syntax--property' + hoverEventSelectors: '.syntax--property, .syntax--class.syntax--operator + .syntax--constant' + clickEventSelectors: '.syntax--property, .syntax--class.syntax--operator + .syntax--constant' gotoRegex: /^(\$\w+)?((->|::)\w+)+/ ###* @@ -34,7 +34,7 @@ class PropertyProvider extends AbstractProvider if not value return - atom.workspace.open(value.declaringStructure.filename, { + atom.workspace.open((value.declaringStructure || value.declaringClass).filename, { searchAllPanes: true }) diff --git a/lib/services/php-file-parser.coffee b/lib/services/php-file-parser.coffee index 8514375..92a91d4 100644 --- a/lib/services/php-file-parser.coffee +++ b/lib/services/php-file-parser.coffee @@ -709,9 +709,11 @@ module.exports = # If there are multiple matches, just select the first method. if value instanceof Array for val in value - if val.isMethod - value = val + if val.isMethod || val.isStatic + return val break + # return undefined if we didn't find a matching element + return return value diff --git a/lib/tooltip/class-provider.coffee b/lib/tooltip/class-provider.coffee index 10a99f2..435efa7 100644 --- a/lib/tooltip/class-provider.coffee +++ b/lib/tooltip/class-provider.coffee @@ -6,7 +6,7 @@ AbstractProvider = require './abstract-provider' module.exports = class ClassProvider extends AbstractProvider - hoverEventSelectors: '.syntax--entity.syntax--inherited-class, .syntax--support.syntax--namespace, .syntax--support.syntax--class, .syntax--comment-clickable .syntax--region' + hoverEventSelectors: '.syntax--entity.syntax--inherited-class, .syntax--support.syntax--namespace, .syntax--support.syntax--class, .syntax--typehinted .syntax--type, .syntax--comment-clickable .syntax--region' ###* * Retrieves a tooltip for the word given. diff --git a/lib/tooltip/function-provider.coffee b/lib/tooltip/function-provider.coffee index d6aa89e..9ec7238 100644 --- a/lib/tooltip/function-provider.coffee +++ b/lib/tooltip/function-provider.coffee @@ -6,7 +6,7 @@ AbstractProvider = require './abstract-provider' module.exports = class FunctionProvider extends AbstractProvider - hoverEventSelectors: '.syntax--function-call' + hoverEventSelectors: '.syntax--function-call .syntax--function, .syntax--method-call .syntax--function' ###* * Retrieves a tooltip for the word given. diff --git a/lib/tooltip/property-provider.coffee b/lib/tooltip/property-provider.coffee index 9c3226c..acd8dd4 100644 --- a/lib/tooltip/property-provider.coffee +++ b/lib/tooltip/property-provider.coffee @@ -5,7 +5,7 @@ AbstractProvider = require './abstract-provider' module.exports = class PropertyProvider extends AbstractProvider - hoverEventSelectors: '.syntax--property' + hoverEventSelectors: '.syntax--property, .syntax--class.syntax--operator + .syntax--constant' ###* * Retrieves a tooltip for the word given.