racket / racket/rhombus

Jump to definition and dotted imports

Open
#815 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Racket
Stars
601
Forks
74
Avg merge
2d 10h
Merged PRs (30d)
5

Description

With this file in y.rhm:

#lang rhombus
export y
def y = 1

and this file (in the same directory) open in drracket:

#lang rhombus
import:
  "y.rhm"
  "y.rhm" open

y
y.y

You’ll see that the y by itself has “jump to definition” but the y.y doesn’t. Helpfully, the first y in the y.y has a link up to the import line, so I guess that it would be ideal if the second y in the y.y had the syntax information that triggered the jump-to-definition.

Judging from the file drracket-tool-text-lib/drracket/private/syncheck/traversals.rkt, Check Syntax looks at identifier-binding to find these, using the module-path index in the first element of the result list to get a filename.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the two Rhombus files in DrRacket and inspect drracket-tool-text-lib/drracket/private/syncheck/traversals.rkt, especially the identifier-binding handling described in the issue. Follow how the first y in y.y gets syntax information from the import, then make the second y support jump-to-definition as well. Done means both the standalone y and the dotted y.y navigate to the definition in y.rhm.

Written by the indexing model from the issue text.

Assessment

Domain
devtools
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
65/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.