__color__	__group__	ticket	summary	component	version	type	owner	status	created	_changetime	_description	_reporter
3	 Release	1	keep a single GHCi/GHC API session for each project	---		defect	claus	new	2009-04-08T10:50:09Z+0100	2010-06-22T17:47:11Z+0100	"Due to Vim not providing a standard API for keeping connections to external tool sessions running in the background ([http://vimdoc.sourceforge.net/htmldoc/develop.html#design-not :help design-not]; this is my main gripe with Vim), haskellmode currently uses tools like `ghc`, `ghc-pkg` as short-term filters. 

In theory, it is possible to work around this Vim limitation, but this raises issues of portability (eg, Vim's client-server communication relies on GUI access, so it won't work in a terminal-only situation), complexity (the most promising approach would be to communicate via sockets), dependencies (several of Vim's plugin script languages support asynchronous subprocess control, but which one to depend on - python/perl/..?), and stability (Vim supports dynamic linking, so one might try to use Haskell's own facilities via FFI, but any bugs there can bring down the Vim session).

On recent machines, the short-term filter approach is just fast enough, but it is a waste, and doesn't scale to large projects (workaround: compile all modules, so only the currently edited module will need to be interpreted)."	claus
3	 Release	12	set makeprg=cabal\ build?	---		defect	haskellmode	assigned	2009-07-29T13:28:11Z+0100	2010-06-22T17:52:30Z+0100	"Any use for this sort of thing anywhere?
{{{
function! SetToCabalBuild()
  if glob(""*.cabal"") != ''
    set makeprg=cabal\ build
  endif
endfunction

autocmd BufEnter *.hs,*.lhs :call SetToCabalBuild()
}}}

I haven't tried to use the Haskell vim scripts yet, so apologies if it's redundant.  I just noticed that the makeprg stuff seems to only have examples for GHC.
"	kowey
3	 Release	25	HpasteIndex broken because of new hpaste.org structure	---		defect	claus	new	2011-10-29T18:15:00Z+0100	2011-10-29T18:15:00Z+0100	"HpasteIndex fails to parse hpaste.org because of new hpaste.org structure.
Patch attached."	lbolla
3	 Release	2	use dedicated GHC API client	---		enhancement	claus	new	2009-04-08T11:04:10Z+0100	2009-04-29T21:26:36Z+0100	"So far, the features `haskellmode` needed have either been available, or made useful additions to existing tools such as `ghc`, `ghci` and `ghc-pkg`. There comes a time, though, when new features may not fit into existing tools. 

One example is getting  type information for local definitions/parameters/subexpressions: the feature itself would fit right into `ghci`, but it isn't easy to come up with a good user interface for it in a terminal-based frontend (source location? path of binders to subexpression?). In editor-style frontends, cursor- or mouse-position make natural interfaces for this feature.

It would be good to factor out useful features into a `GHC API` client library, which would then be used by `ghci`, `haskellmode` (for `Vim` and `Emacs`), and other IDE-style tools."	claus
3	 Release	17	add more default locations for documentation installations	---		enhancement	claus	new	2010-06-22T18:19:48Z+0100	2010-06-22T18:36:05Z+0100	"It is astonishing how GHC/Haskell installation layouts differ across platforms. I was hoping for GHC to implement [http://hackage.haskell.org/trac/ghc/ticket/1226 `--print-docdir`] and thereby to provide programmatic access to its documentation. This was implemented, but later reverted, as [http://hackage.haskell.org/trac/ghc/ticket/1880#comment:5 it seems unclear how to do it right], so we are back to square one.

Our fallback is to provide a list of common documentation installation locations and, finally, for the user to tell us where the docs are (`g:haddock_docdir`).

This ticket is a place for users to suggest known default documentation installation locations. 

As a minimum, we'd need the GHC/Docs installation layout for your packaging system (of course, GHC is in `/tuesdays/odd_languages/GHC-<hash-of-ghc-version>/`, GHC docs are always in `/if/you/really/want/to/know/<minor-version>-GHC-<major-version>/`, while cabal package docs are in `/the/package/manager/also/<ghc-version>/cabal/<cabal-version>/<package>/<package-version>/html/`) but for some reason, I find these standard locations hard to guess, so I need you to tell me;-)

Better would be some kind of system (what are the rules for packaging software on your platform?) or Haskell-tool access (e.g., cabal package docs can be found via `ghc field <package> haddock-html`, but how do I find the GHC docs if I know the GHC binary location?)."	haskellmode
3	 Release	23	think about explicit logging/debug output	---		enhancement	claus	new	2010-11-22T16:07:20Z+0000	2010-11-22T16:07:20Z+0000	"Originally, the plugins gave just enough feedback to let users know what was going on internally.

With the addition of higher-level features, this has lead to two issues:

1. low-level feedback is not appropriate in all higher-level uses (type-balloons don't even call out to ghci anymore, users don't want to see messages not directly related to what they are working on). So some of the feedback has disappeared.

2. `:debug` helps, but having a log of more extensive feedback would help to pin down problems more quickly, especially if it could be saved and sent with bug reports from platforms I don't have access to.

It would be nice to go through all plugin feedback and decide whether it (a) should remain, as it is relevant to plugin use or whether it (b) should be moved into optional output (debug/trace mode), as it is mostly for looking under the hood. The output of (b) could then be enhanced, and recorded/logged, as it would only be seen by people looking for it.

related things to look into: `:echomsg` (`message-history`), `g<` (recall previous output), reducing `cmdheight` (while still avoiding `hit-enter` prompts)"	haskellmode
3	 Release	3	code cleanup	---		task	claus	new	2009-04-08T11:10:15Z+0100	2009-04-08T11:10:15Z+0100	"The script code is the result of long-term growth, and it shows (code duplication, multiple approaches to commandline menues in different places, support for old versions of `ghc`/`vim`, ..). A cleanup would help to simplify/enable further development.

Apart from the issue of time (funds, anyone?-), what is keeping me from doing this is lack of access to suitable `ghc`/`vim` installations on multiple platforms. I've found it all too easy to make innocent looking changes that continue working on my configuration, but somehow manage to break someone else's."	claus
4	 Release	18	improve completion/shortcuts for pragmas	---		enhancement	claus	new	2010-06-22T18:40:08Z+0100	2010-06-22T18:40:08Z+0100	In addition to `LANGUAGE` and `OPTIONS_GHC` pragmas, there are others that come up often enough (`INLINE`, `SCC`, ..) to warrant support. Also, using context-sensitive completion instead of menu selection would make it easier to merge multiple `LANGUAGE` pragmas into one.	haskellmode
3	 Release	21	GHCi can't show bangstars when the file is compiled.	compiler/ghc.vim		defect	claus	new	2010-11-04T09:40:45Z+0000	2010-11-04T09:40:45Z+0000	"GHCi and ghc --interactive can't browse *Module if the file is compiled.
This renders the omnifunc useless as the autocommand QuickFixCmdPost runs
GHC_BrowseAll after running make.

How to reproduce:

Run :GHCReload, import a new module, run :make and try to C_xC-o a function
from the new imported module.

Expected behaviour:

The cache should be updated and C-xC-o should return a list of possible
completions.

Real behaviour:

Cache isn't updated and the symbols aren't found.


Possible fix:

Instead of updating the cache with every :make, update it with every :w (see patch)"	Masse
4	 Release	10	Show types for subexpressions	compiler/ghc.vim		enhancement	claus	new	2009-05-12T00:02:32Z+0100	2009-05-13T01:04:18Z+0100	"Hi,

not sure if this is possible, but it would be nice to use _t even on locally bound identifiers. So if I have

{{{
readTheFile filename = readFile filename
}}}

I could hover the filename (either in the pattern or in the body), and it would show ""String"" or ""FileName"".

This could be achieved by temporarily annotating the value with a type signature, e.g.

{{{
data Dummy = Dummy
readTheFile filename = readFile (filename :: Dummy)
}}}

(where Dummy might be replaced by some random string) and then parsing the error message
{{{
tmp.hs:2:33:
    Couldn't match expected type `FilePath'
           against inferred type `Dummy'
    In the first argument of `readFile', namely `(filename :: Dummy)'
    In the expression: readFile (filename :: Dummy)
    In the definition of `readTheFile':
        readTheFile filename = readFile (filename :: Dummy)
}}}
extracing the type from the ""expected type"" information.

Additional bonus if it works for subexpression in visual mode. E.g., I can select a range in the code and _t gives me the type of the range (if putting that range in brackets and adding a type signature is still valid code).

Thanks,
Joachim"	nomeata
5	 Release	26	Make the location of haskellmode.config configurable	compiler/ghc.vim	latest (please provide version in text)	enhancement	claus	new	2012-08-07T11:56:10Z+0100	2012-08-07T11:56:10Z+0100	"I added the ability to make the location of haskellmode.config configurable. Patch attached for your consideration.

Not too sure where the versioning is done; I cloned a copy off of https://github.com/gabemc/haskellmode-vim.git"	holzensp
4	 Release	4	Add default g:haddock_browser/g:haddock_browser_callformat for Mac	ftplugin/haskell_doc.vim		enhancement	claus	reopened	2009-04-12T18:24:34Z+0100	2009-04-15T11:58:59Z+0100	"Add a default {{{g:haddock_browser}}} and {{{g:haddock_browser_callformat}}} for the Mac:

{{{
let g:haddock_browser = ""open""
let g:haddock_browser_callformat = ""%s %s""
}}}

This is described in more detail [http://splonderzoek.blogspot.com/2009/04/haskell-mode-for-vim-on-mac.html here]."	spl
5	 Release	20	need redraw after browser launch	ftplugin/haskell_doc.vim		enhancement	claus	new	2010-10-22T11:21:03Z+0100	2010-11-22T15:45:21Z+0000	"I run vim inside a urxvt.

If I use a gui web browser for haddock_browser, then, when requesting to look at documentation, my terminal is blanked. I have to hit ctrl-l to have vim redraw the screen.

To fix this, I had to add ""redraw!"" to the end of the DocBrowser function."	ibtaylor
