Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set the working directory of WinGHCi

I just installed WinGHCi. When I try to load an .hs file with Ctrl+L, it opens the file browser in C:\Program Files (x86)\Haskell Platform\2012.2.0.0\winghci which is where I installed this. I don't want it to go there by default, I keep my code files in a different directory on a different drive and I don't want to have to navigate to D:\MyPath\Haskell every time I load a file.

I tried to set the "Start in" field of the shortcut I use to launch WinGHCi but it changed nothing.

How can I make WinGHCi look in my own directory by default?

like image 375
Superbest Avatar asked Nov 03 '12 08:11

Superbest


People also ask

How do I change directory in Haskell?

Save the file but leave the editor open on it. Then start up Haskell, use the :cd command to change to your home directory or subdirectory, then the :load command to load the file. Try things out. If you want to edit your file, do so and save it, and then back in Haskell reload the file using :reload.

How to quit GHCi?

Quits GHCi. You can also quit by typing control-D at the prompt. Attempts to reload the current target set (see :load ) if any of the modules in the set, or any dependent module, has changed.


Video Answer


1 Answers

It opens in the last directory you opened a .hs or .lhs from.

Try opening something from the folder you want, exit, restart. Did it restart where you were?

Try working like that for a while, and if you like it (I do) then you're fine.


If you really do want to go to the same place every time, perhaps there's a way.

I can't find any setting to control this, but the information is stored in the registy. Mine is at

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Haskell\WinGHCi 1.0.6]
"WorkingDir"="D:\\Files\\Andrew\\prog\\haskell"

You can save your version of that as resetghci.reg: To make your own, open regedit and first try the same location. If not, search for WinGHCi. You can export that subtree but you get the whole lot including recent expressions etc, which I don't think you should reset. Save that as ghcioriginal.reg just in case. Edit away all the lines except WorkingDir and save as resetghci.reg

When you double-click it it will ask you if you're sure you want to add that info to the registry. Yes you are.


Untested:

What follows works on older versions, but Microsoft seem to be going off .pif files and the start command, and I'm not able to test this in Windows 7.

Make a text file called ghci.bat in the same folder as the .reg you made. In it put

@echo off
regedit resetghci.reg
start WinGHCi

You might need to specify the full path to WinGHCi. The start command is the windows equivalent of making a background process from a shell prompt, so this should terminate immediately.

Make a shortcut to ghci.bat (it will be called ghci.pif) and set it to open minimised and put a nice lambda icon on it (nick it from the winghci executable).

Pop that on your desktop, start menu or shortcut bar, and when you use it, you'll be popped back to your standard location.

like image 64
AndrewC Avatar answered Sep 25 '22 19:09

AndrewC