Provide functions for use in the fregIDE
initialize the root of the package tree
add a new module
Remove this package from the package cache
Force the import to re-create packages next time
Make a new loader for operation in the IDE. The rationale is that not making a new loader for every character typed will save time and space.
The IDE code must decide when to make a new loader. For instance, this could be appropriate when the editor is re-activated, because in the meantime other modules could have been rebuild.
add magic package names
This resembles the SourceProposal class. The additional information must be lazy!
Additional information displayed in the pop-up view to the right of the main proposal list view when this proposal is selected.
The offset at which the insertion point should be placed after completing using this proposal, relative to the end of the inserted text.
The range of text being replaced.
The new text being added/substituted if the user accepts this proposal
The range of text being replaced.
The prefix being completed.
The text shown to the user in the popup view
Called by Eclipse Content Proposer to make proposals.
Usage: proposeContent global offset tokens index
Create a list of triples with position, namespace and package for every import except the automatic ones.
Create the list of symbols ordered by position
Make a label for a symbol
Increment the pass number in the state
Failure tolerant version of Global.thisTab for use in TreeModelBuilder. In case of syntax errors, there is no symtab yet, hence Global.thisTab is undefined. This, in turn, causes an exception in Eclipse. We can avoid this by just pretending the symbol table was empty.
This is called from the fregIDE documentation provider when the reference resolver didn't find anything.
This indicates the mouse was not hovering over some identifier.
find all operators in the current symbol table and tabulate their fixities
Correct the result of frege.compiler.Scanner.dependencies, which returns a singleton list with one element "frege.prelude.PreludeBase" for source files that don't have any import clauses. Yet, unless this is a prelude package itself, "frege.Prelude" will be imported.
This discrepancy leads to files not compiling in the FregIDE builder because they are queued before "frege/Prelude.fr"
Get all the dependencies from a source text
This will be done on a fresh Global
lexical analysis from the IDE does not read files, but takes the content directly
inherited from Show.display
inherited from Show.showChars
inherited from Show.showList
inherited from Show.showsPrec
inherited from Show.showsub
documentationDocumentation, htmlDocumentation, packDocumentation
Proposal.chg$proposal, Proposal.chg$newText, Proposal.chg$prefix
Proposal.upd$proposal, Proposal.upd$prefix, Proposal.upd$newText
Show_Proposal.showsub, Show_Proposal.display, Show_Proposal.show, Proposal.proposal, Proposal.newText, Proposal.prefix
Proposal.has$proposal, Proposal.has$off, Proposal.has$len, Proposal.has$newText, Proposal.has$prefix, Proposal.has$additional, Proposal.has$cursor