[Haskell-cafe] Target Selection in HaRe
jpmoresmau at gmail.com
Tue Jan 14 10:25:52 UTC 2014
Can't you do the union of module graphs for all targets by adding the file
names to the modules or something, so you could have several main modules
using different files in a general graph?
What I know is how we do renames in EclipseFP: we use the GHC API to
generate usage information for each different targets then the data is
actually stored in a DB, and the Java code uses this info to perform
renames everywhere (across projects, even). Of course you don't want all
that, but you should be able to decorate the module graph with file names
and perform the union.
On Tue, Jan 14, 2014 at 11:04 AM, AlanKim Zimmerman <alan.zimm at gmail.com>wrote:
> The Haskell Refactorer now makes use of the GHC API to load and typecheck
> the code to be refactored.
> It uses ghc-mod internally to identify a project cabal file, and extract
> the targets in it.
> The current code attempts to load all the targets into the module graph,
> to make sure that when a project is refactored the ancillary parts such as
> tests and benchmarks are refactored too, e.g. when renaming a function.
> The problem is that GHC is unable to load more than one main file.
> I am trying to decide on the best way of resolving this in terms of a user
> of HaRe, where it should 'just work' most of the time. The actual
> refactoring is done by calling the HaRe executable with command line
> Options that seem viable are
> 1. require the names of the target(s) to be loaded to be passed in as
> command line arguments.
> This means the IDE integration is going to have to provide a way of
> deciding the scope of the refactoring.
> 2. Create a config file that lives in the project directory and specifies
> the targets to be loaded
> 3. Try to build up a union of the module graph for all the targets,
> excluding all main modules.
> The problem with this is that it then becomes difficult to refactor a main
> 4. A different option, or blend of the above.e.g. load the union but
> specify the specific main module.
> Does anyone have any preferences in terms of this?
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe