Skip to content

Add entity.name scopes to property definitions #54

@faultyserver

Description

@faultyserver

See https://www.sublimetext.com/docs/3/scope_naming.html#entity. entity scopes are used to populate the symbol list and enable the "Jump to Definition" behavior.

An example:

class Foo
  property bar : String

  def baz; end
end


foo = Foo.new
foo.baz
foo.bar

Putting the cursor in the word baz in foo.baz and then pressing alt+cmnd+down will jump to the definition of baz on Foo (or if there are multiple definitions of it, it brings up a palette to jump between definitions).

However, doing the same on bar does not jump to the definition because there is no actual function definition in the source code.

I think that jumping to property definitions should be supported, and they use a scope like entity.name.property instead of entity.name.function to be semantically accurate.

I know there's some effort to do this with Scry, but it can also just be done with the symbol scoping so why not at least start there. It's not a perfect solution and doesn't address issues with jumping to things defined by macros, but it's a good step towards that and would feel more consistent overall.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions