You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A recent discourse thread started with me asking about completion candidates for #lang rhombus (I had forgotten how my own racket-xp-mode gives a union of imports from all submodules, even configure-runtime. Doh. Fortunately pdb is already smarter in this regard.)
So that thread started off with me being a bit of a dunce. However, as I dug in more I realized that:
Knowing about all exports and imports matters for finding definitions and references -- basic provenance and relations (also completion candidates, but that's the least of it).
I thought the idea with Racket langs is that they expand to a documented grammar for fully-expanded programs, which includes information about exports and imports. That is the premise of this library.
Sure, I've had to submit a few PRs to racket, to preserve srcloc for identifiers, or to add syntax-properties to reveal the provenances of exported/imported identifiers composed from multiple other identifiers. But at least those composed identifiers were shown as exported/imported.
And sure, I realize that programs can smuggle in anything via dynamic-require, and things built upon it like lazy-require or rackunit's require/expose. But I figured that if programs do hacks like that, and it's invisible to pdb, that's probably understandable and acceptable to users.
What I didn't expect is a major #lang to be opaque, seemingly on purpose?
Maybe the status quo is only because rhombus is a prototype? Maybe the fully-expanded grammar will be updated and/or other mechanisms supplied?
Meanwhile I don't see how to proceed.
(In fact this feels pretty discouraging; pdb has been a long slog, and now it seems like the end isn't in sight after all.)
The text was updated successfully, but these errors were encountered:
A recent discourse thread started with me asking about completion candidates for
#lang rhombus
(I had forgotten how my ownracket-xp-mode
gives a union of imports from all submodules, evenconfigure-runtime
. Doh. Fortunatelypdb
is already smarter in this regard.)So that thread started off with me being a bit of a dunce. However, as I dug in more I realized that:
Knowing about all exports and imports matters for finding definitions and references -- basic provenance and relations (also completion candidates, but that's the least of it).
I thought the idea with Racket langs is that they expand to a documented grammar for fully-expanded programs, which includes information about exports and imports. That is the premise of this library.
Sure, I've had to submit a few PRs to racket, to preserve srcloc for identifiers, or to add syntax-properties to reveal the provenances of exported/imported identifiers composed from multiple other identifiers. But at least those composed identifiers were shown as exported/imported.
And sure, I realize that programs can smuggle in anything via
dynamic-require
, and things built upon it likelazy-require
orrackunit
'srequire/expose
. But I figured that if programs do hacks like that, and it's invisible topdb
, that's probably understandable and acceptable to users.What I didn't expect is a major
#lang
to be opaque, seemingly on purpose?Maybe the status quo is only because rhombus is a prototype? Maybe the fully-expanded grammar will be updated and/or other mechanisms supplied?
Meanwhile I don't see how to proceed.
(In fact this feels pretty discouraging;
pdb
has been a long slog, and now it seems like the end isn't in sight after all.)The text was updated successfully, but these errors were encountered: