Editor

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
40 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Editor

Michael Richter-5
I have a dream.  It's not a little dream.  It's a big dream.  I have a dream that someday I can find a UNIX/Linux text editor for Haskell hacking (and possibly two or three hundred other programming languages, although that's optional) that can give me all of the following:

  1. A real GUI environment that takes into account some of the HID advances made in the past 30 years.  (Emacs and Vim don't count, in other words.)
  2. Good quality syntax highlighting for Haskell that includes all of the usual syntax highlighting goodies, plus:
  3. the ability to seamlessly handle raw Haskell and both common forms of Literate Haskell;
  4. the ability to properly highlight Haddock comments;
  5. the ability to highlight functions and types from libraries (user-expandable) differently from local functions and types.
  6. Line folding to hide and show blocks of code.
  7. Code completion (user-expandable, ideally) for common library functions, type declarations, etc.
  8. Easy, quick access to online documentation for said functions and declarations.
  9. Good (ideally scriptable) access to external utilities for compilation, debugging, profiling, type inference, project management, etc.
  10. A good plug-in system (ideally written in Haskell?) for expansion.

Is there such a beast available out there somewhere?  If not, is such a beast lurking in the background ready to pounce in the near future?
--
Michael T. Richter <[hidden email]> (GoogleTalk: [hidden email])
I have to wonder why people think that when they can't manage local personnel within easy strangling and shooting distance, then they can manage personnel thousands of miles away that have different languages, cultures, and business rules. (Joe Celko)

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe

signature.asc (196 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Editor

Jules Bean
Michael T. Richter wrote:
> I have a dream.  It's not a little dream.  It's a big dream.  I have a
> dream that someday I can find a UNIX/Linux text editor for Haskell
> hacking (and possibly two or three hundred other programming languages,
> although that's optional) that can give me all of the following:
>
>    1. A real GUI environment that takes into account some of the HID
>       advances made in the past 30 years.  (Emacs and Vim don't count,
>       in other words.)


That particular part is trolling. Both emacs and vim take into account
many of the HID advances made in the past 30 years. You're going to have
to be more explicit about what you find unacceptable about them to get
useful answers, in my opinion.

I can't speak for vim, but emacs certainly satisfies 2.3, 2.4, 3, 4, 5,
6, and 7.  (I'm not sure if 5 is 100% out-of-the-box but it would be
very easy to sort it out if not).

2.5 I'd not really thought about before as an interesting requirement.
Could be useful.


>    2. Good quality syntax highlighting for Haskell that includes all of
>       the usual syntax highlighting goodies, plus:
>
>        3. the ability to seamlessly handle raw Haskell and both common
>           forms of Literate Haskell;
>        4. the ability to properly highlight Haddock comments;
>        5. the ability to highlight functions and types from libraries
>           (user-expandable) differently from local functions and types.
>
>    3. Line folding to hide and show blocks of code.
>    4. Code completion (user-expandable, ideally) for common library
>       functions, type declarations, etc.
>    5. Easy, quick access to online documentation for said functions and
>       declarations.
>    6. Good (ideally scriptable) access to external utilities for
>       compilation, debugging, profiling, type inference, project
>       management, etc.
>    7. A good plug-in system (ideally written in Haskell?) for expansion.
>
>
> Is there such a beast available out there somewhere?  If not, is such a
> beast lurking in the background ready to pounce in the near future?
> --
> *Michael T. Richter* <[hidden email]
> <mailto:[hidden email]>> (*GoogleTalk:* [hidden email])
> /I have to wonder why people think that when they can't manage local
> personnel within easy strangling and shooting distance, then they can
> manage personnel thousands of miles away that have different languages,
> cultures, and business rules. (Joe Celko)/
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Haskell-Cafe mailing list
> [hidden email]
> http://www.haskell.org/mailman/listinfo/haskell-cafe

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Editor

Michael Richter-5
On Mon, 2007-21-05 at 11:47 +0100, Jules Bean wrote:
Michael T. Richter wrote:
>    1. A real GUI environment that takes into account some of the HID
>       advances made in the past 30 years.  (Emacs and Vim don't count,
>       in other words.)

That particular part is trolling. Both emacs and vim take into account 
many of the HID advances made in the past 30 years. You're going to have 
to be more explicit about what you find unacceptable about them to get 
useful answers, in my opinion.

Vim is eliminated before it reaches the gate because it's a modal editor.  Even with GVim in place, it still has that modal stench to it that leaps up and bites at awkward moments.  And HID advances (the modal issue aside)?  Go to an underpowered little editor like Gedit (what I use currently for raw Haskell, but which sadly isn't applicable to .lhs files of either stripe) and adjust your editing preferences.  It's not a particularly good programmer's editor, but look at the lovely tabbed dialog box with all those lovely HID bits like checkboxes, radio buttons, spin buttons, dropdown lists, lists, etc.  Now do the same in GVim and get ... a text file with some editing tricks to make things slightly easier.  (It's not immediately obvious how to get rid of it either.)  Where is the accounting for HID advances there?  (Raw Vim is even worse.) 

Hell, even comparing the out-of-the-box syntax highlighting support in Gedit vs. (G)Vim is instructive.  Code like "makeRandomValueST :: StdGen -> (MyType, StdGen)" (which, incidentally, was far easier to copy from in Gedit than GVim to paste into this message) only differentiates "::" and "->" from the text and delimiters in GVim while in Gedit (keeping in mind that Gedit isn't a very good editor!) differentiates those plus "makeRandomValueST" vs. "StdGen" and "MyType".  And the parentheses.

(G)Vim is losing to freakin' GEDIT here!  The Notepad of the GNOME world.

Emacs is its own set of nightmares.  I'm not even going to start going down the path of that particular holy war (and bucky-bit Hell).  I'll acknowledge freely that it's an incredibly powerful programming environment.  It just really doesn't play well with others at almost any level and quite definitely doesn't have anything resembling modern HID thought behind it.  (To be fair to it, it does predate most modern HID work by a couple of decades.)

--
Michael T. Richter <[hidden email]> (GoogleTalk: [hidden email])
All really first class designers are both artists, engineers, and men of a powerful and intolerant temper, quick to resist the least modification of the plans, energetic in fighting the least infringement upon what they regard as their own sphere of action. (Nevil Shute)

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe

signature.asc (196 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Editor

Rodrigo Queiro
My friend read your email and remarked:
"How is this guy not embarrassed posting on the internet about not liking vim because he doesn't like editing config files?"

On 21/05/07, Michael T. Richter <[hidden email]> wrote:
On Mon, 2007-21-05 at 11:47 +0100, Jules Bean wrote:
Michael T. Richter wrote:
>    1. A real GUI environment that takes into account some of the HID
>       advances made in the past 30 years.  (Emacs and Vim don't count,
>       in other words.)

That particular part is trolling. Both emacs and vim take into account 
many of the HID advances made in the past 30 years. You're going to have 
to be more explicit about what you find unacceptable about them to get 
useful answers, in my opinion.

Vim is eliminated before it reaches the gate because it's a modal editor.  Even with GVim in place, it still has that modal stench to it that leaps up and bites at awkward moments.  And HID advances (the modal issue aside)?  Go to an underpowered little editor like Gedit (what I use currently for raw Haskell, but which sadly isn't applicable to .lhs files of either stripe) and adjust your editing preferences.  It's not a particularly good programmer's editor, but look at the lovely tabbed dialog box with all those lovely HID bits like checkboxes, radio buttons, spin buttons, dropdown lists, lists, etc.  Now do the same in GVim and get ... a text file with some editing tricks to make things slightly easier.  (It's not immediately obvious how to get rid of it either.)  Where is the accounting for HID advances there?  (Raw Vim is even worse.) 

Hell, even comparing the out-of-the-box syntax highlighting support in Gedit vs. (G)Vim is instructive.  Code like "makeRandomValueST :: StdGen -> (MyType, StdGen)" (which, incidentally, was far easier to copy from in Gedit than GVim to paste into this message) only differentiates "::" and "->" from the text and delimiters in GVim while in Gedit (keeping in mind that Gedit isn't a very good editor!) differentiates those plus "makeRandomValueST" vs. "StdGen" and "MyType".  And the parentheses.

(G)Vim is losing to freakin' GEDIT here!  The Notepad of the GNOME world.

Emacs is its own set of nightmares.  I'm not even going to start going down the path of that particular holy war (and bucky-bit Hell).  I'll acknowledge freely that it's an incredibly powerful programming environment.  It just really doesn't play well with others at almost any level and quite definitely doesn't have anything resembling modern HID thought behind it.  (To be fair to it, it does predate most modern HID work by a couple of decades.)

--
Michael T. Richter <[hidden email]> (GoogleTalk: [hidden email])
All really first class designers are both artists, engineers, and men of a powerful and intolerant temper, quick to resist the least modification of the plans, energetic in fighting the least infringement upon what they regard as their own sphere of action. (Nevil Shute)

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
<a onclick="return top.js.OpenExtLink(window,event,this)" href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank"> http://www.haskell.org/mailman/listinfo/haskell-cafe




_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Editor

Thomas Davie

On 21 May 2007, at 13:04, Rodrigo Queiro wrote:

> My friend read your email and remarked:
> "How is this guy not embarrassed posting on the internet about not  
> liking vim because he doesn't like editing config files?"

Two points
1)  This guy doesn't like editing config files -- that's his  
preference.  He's stated he doesn't like either of vim or emacs, and  
whether you agree or not, you maybe should respect that and try to be  
useful and answer his question.
2) Believe it or not, a computer is a tool, it's there to get things  
done in the fastest and easiest way possible -- I should be able to  
edit my preferences in three clicks of a mouse button, rather than  
opening the preferences, finding the right place to edit (possibly  
looking up the manual to find the relevant things to insert in the  
config), typing a load in, and then having my preferences edited!

Yes, I really do think that's an advantage, and no, I don't think  
snarky comments about "not liking editing config files" are either  
relevant or useful.

Bob

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Editor

Michael Richter-5
In reply to this post by Rodrigo Queiro
On Mon, 2007-21-05 at 13:04 +0100, Rodrigo Queiro wrote:
My friend read your email and remarked:
"How is this guy not embarrassed posting on the internet about not liking vim because he doesn't like editing config files?"

Because, unlike your friend, I actually have seen the advances in HID over the past 30 years.  Editing text files is not the be-all/end-all of user interfaces.  Indeed there is astonishingly high volumes of evidence showing that it's a pretty miserable user interface -- a misery amplified by the fact that every two-bit program has its own entirely unique syntax (usually broken in many exciting ways!) full of cryptic commands and settings.  Don't believe it?  Go to your home directory and compare all the .<files> you find.  You really think it's a good thing to maintain each of those manually?

Oh, and of course it wasn't just the config files I showed problems with, now, was it?  I seem to remember something about modality and bad syntax highlighting.  Maybe I was tripping.  It happens.

For your friend's reference, here's a good outline of what principles underlie HID: http://www.asktog.com/basics/firstPrinciples.html.  For even more modern outlooks, I'm sure a quick search at Amazon.com (or his bookseller of choice) can give him other ideas.

So am I embarrassed for asking for something resembling a 21st-century user interface instead of a 1970s vintage one?  Not in the slightest.

--
Michael T. Richter <[hidden email]> (GoogleTalk: [hidden email])
It's OK to figure out murder mysteries, but you shouldn't need to figure out code. You should be able to read it. (Steve McConnell)

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe

signature.asc (196 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Editor

Alex Queiroz-2
Hallo,

On 5/21/07, Michael T. Richter <[hidden email]> wrote:
>
>  Oh, and of course it wasn't just the config files I showed problems with, now, was it?  I seem to remember something about modality and bad syntax highlighting.  Maybe I was tripping.  It happens.
>

    You may not like modality, it's entirely within your rights, but
it is *not* a problem. Fortunately it's still there for the millions
of us who like it.

--
-alex
http://www.ventonegro.org/
_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Editor

Neil Mitchell
In reply to this post by Michael Richter-5
Hi

Can everyone just relax a moment. There are different editors which
suit different people. Most VIM/Emacs users wouldn't ever consider
changing. Michael is asking "is there something more GUI like?" - to
which the answer is yes - Visual Haskell -
http://www.haskell.org/visualhaskell/ . It doesn't tick all the boxes,
but it sounds to be the kind of thing you are driving for.

I personally use TextPad (www.textpad.com) because it has a very nice
user interface and does exactly what I expect every single time. Your
text editor is merely an interface between your brain and the
computer, its not surprising everyone has different preferences.

Thanks

Neil
_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Editor

Thomas Schilling-2
In reply to this post by Michael Richter-5
Your rant accomplishes nothing.  Just note that programmers can
generally be considered more open towards harder-to-learn but
eventually more efficient to use interfaces.  Yes, to a large part
they lack visibility, consistency, integration, or other such
properties; then again, once you learn to use them you're so much more
efficient than before.  And you loose the incentive to improve things.

So instead of insulting people and complaining that nothing fits your
needs you have at least two options:

 1. Implement it.  Of course, this is a _major_ effort and many many
things are completely unsolved research issues.

 2. Take what's there, learn to use it.  Yes, it will lack so many
things but one way or another you'll eventually get things done.

On 5/21/07, Michael T. Richter <[hidden email]> wrote:

>
>  On Mon, 2007-21-05 at 13:04 +0100, Rodrigo Queiro wrote:
>
>      My friend read your email and remarked:
>      "How is this guy not embarrassed posting on the internet about not liking vim because he doesn't like editing config files?"
>
>  Because, unlike your friend, I actually have seen the advances in HID over the past 30 years.  Editing text files is not the be-all/end-all of user interfaces.  Indeed there is astonishingly high volumes of evidence showing that it's a pretty miserable user interface -- a misery amplified by the fact that every two-bit program has its own entirely unique syntax (usually broken in many exciting ways!) full of cryptic commands and settings.  Don't believe it?  Go to your home directory and compare all the .<files> you find.  You really think it's a good thing to maintain each of those manually?
>
>  Oh, and of course it wasn't just the config files I showed problems with, now, was it?  I seem to remember something about modality and bad syntax highlighting.  Maybe I was tripping.  It happens.
>
>  For your friend's reference, here's a good outline of what principles underlie HID: http://www.asktog.com/basics/firstPrinciples.html.  For even more modern outlooks, I'm sure a quick search at Amazon.com (or his bookseller of choice) can give him other ideas.
>
>  So am I embarrassed for asking for something resembling a 21st-century user interface instead of a 1970s vintage one?  Not in the slightest.
>
>
>   --
>  Michael T. Richter <[hidden email]> (GoogleTalk: [hidden email])
>  It's OK to figure out murder mysteries, but you shouldn't need to figure out code. You should be able to read it. (Steve McConnell)
> _______________________________________________
> Haskell-Cafe mailing list
> [hidden email]
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
>
>



--
"Remember! Everytime you say 'Web 2.0' God kills a startup!" -
userfriendly.org, Jul 31, 2006
_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Editor

Claus Reinke
In reply to this post by Michael Richter-5
>I have a dream.  It's not a little dream.  It's a big dream.  I have a
>dream that someday I can find a UNIX/Linux text editor for Haskell
>hacking (and possibly two or three hundred other programming languages,
>although that's optional) that can give me all of the following:

'find / -type dream | xargs rm' is not a good way to go about that
that search, is it?-) by excluding the editors that fullfill most of your
criteria, without any good reason, you're guaranteed to come up
empty. "i have a dream that there is an answer to life the universe
and everything, and it isn't 42"?

you might not like the answer most people give, but there is a reason
why that answer is so popular. of course, just because it is one valid
answer, it need not be the right answer for you. you just need to be
specific about why that particular answer doesn't suit you.

>     1. A real GUI environment that takes into account some of the HID
>        advances made in the past 30 years.  (Emacs and Vim don't count,
>        in other words.)

be specific, please! emacs and vim are often the first to integrate
and experiment with whatever new ideas come into view (some even
originated there). only few of those experiments find enough followers
to make it into the main distributions, though. whatever it is you're
missing, if you can't even name it, it can't be good enough reason to
discard either emacs or vim).

in my experience, most people complain about vim or emacs because
they aren't aware of what these can do. it is not just that there is so much
functionality and variation available that one has to invest time to learn
even parts of that, one new feature a day. it is that much of what people
don't like is deliberately not fixed, but configurable.

some people don't like the complexity of emacs interactions, and
prefer vim's brief and efficient modes&key-strokes, some don't like
vim modes and prefer emacs-style commands, some prefer plain
text, some prefer gui, some ... you might prefer either vim or emacs,
but you shouldn't complain about anything that you can configure
yourself (such as modes vs long commands, gui vs text, os-style
or vim-style copy&paste, colours and specifics of syntax highlighting,
available menus, and so on).

vim has a good integrated manual, and tutorials, but if i want that
much functionality, i have to learn about it, and spend a lot of time
in that documentation. the more my personal needs deviate from
default settings, the more i have to learn and configure; the more
specific functionality i need the more i have to delve into the details
of what is available. if i don't want to learn how to use such powers,
i have to make do with a less powerful, out-of-the-box environment.

some people are happy with textpad, but i know nobody who has
studied all of current vim or emacs. most users start out with the
textpad equivalent of functionality in vim or emacs, then add to their
knowledge and toolbox as and when they need to do so.

looking at your requirements, for vim, to the extent i know it:

>     2. Good quality syntax highlighting for Haskell that includes all
>        of the usual syntax highlighting goodies, plus:

yes

>              * the ability to seamlessly handle raw Haskell and both
>                common forms of Literate Haskell;

i stopped using literate haskell long ago, so i can't really say.

(i always wanted literate haskell _sessions_, not programs, with
definitions, redefinitions, evaluations, explanations, but all with a
quite different structure than is useful for the programs being
explored/described in such a session)

>              * the ability to properly highlight Haddock comments;

seem to be highlighted only as comments, by default, but you could
change that, if you really wanted to. if the change looks useful, it
should make it into the next vim release - that's how the current haskell
highlighting got there and keeps developing.

>              * the ability to highlight functions and types from
>                libraries (user-expandable) differently from local
>                functions and types.

that sounds potentially useful, and some of the information is
available (my vim settings have tables of local and library definitions
for completion). however, vim doesn't know about haskell scopes,
so the easiest solution would be unaware of renaming/hiding/etc.

>     3. Line folding to hide and show blocks of code.

yes, along with other folding modes

>     4. Code completion (user-expandable, ideally) for common library
>        functions, type declarations, etc.

several completions, including two user-expandable ones. in my setup,
completion can be based on source, tag files, haddock indices, ghci
:browse,..

>     5. Easy, quick access to online documentation for said functions
>        and declarations.

yes. open your favourite browser on the haddocks for the id under cursor.

>     6. Good (ideally scriptable) access to external utilities for
>        compilation, debugging, profiling, type inference, project
>        management, etc.

yes, and several scripting languages to choose from. quickfix mode is
there, the ghci debugger is not yet supported because it is too new, i
haven't seen profiling support, but i can ask for type and info for the id
under cursor, create tags files, jump to definitions, search in imports,..;

since it is all scriptable, ghc's api support is rapidly developing, and
other haskell implementation provide apis, too, its all up to haskellers
to start linking the two in whatever way they like (most haskellers only
have to do the linking for their editor, if there is functionality missing,
just tell the api developers - they really like to know).

>     7. A good plug-in system (ideally written in Haskell?) for
>        expansion.

if you just want to run haskell functions over parts of your text, use
'<range>!ghc -e my_function MyLib.hs', and map each such function
to some key or menu entry; apparently, vim could also run code from
dynamically loaded libraries, but when i last looked into that, it wasn't
easy to produce such on all platforms, from haskell, with ghc.

if you you just want to control your editor from haskell, vim is
remote-scriptable (we used that in the vim interface to HaRe). or
emacs can communicate with an asynchronous haskell subprocess
(we used that in the emacs interface to HaRe).

8. oh, and of course, you forgot many requirements, such as side-by-side
    diff views, same functionality on other os platforms, and other
miscellanea.

>Is there such a beast available out there somewhere?  If not, is such a
>beast lurking in the background ready to pounce in the near future?

no, no. such things can't exist, i'm sure;-) just keep emacs and vim out
of the house, and no editing beast will interfere with your dreams (beware
the ides, though, they're catching up, too!-)

http://www.haskell.org/haskellwiki/Applications_and_libraries/Program_development#Editor_support
http://www.haskell.org/haskell-mode/
http://www.cs.kent.ac.uk/people/staff/cr3/toolbox/haskell/Vim/

claus

ps. no, vim is not perfect!-)

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Editor

Rodrigo Queiro
In reply to this post by Michael Richter-5
With a slightly less flippant response, have you ever tried TextMate? I haven't, but I've heard many wax lyrical about its combination of the UNIXy power of Vim et al with the intuitive and simple UI that OS X has a reputation for. Unfortunately, it's not free and is only for Mac OS X, but it seems that it was created by someone who shared your dream (although a less Haskell-centric version, no doubt).

On 21/05/07, Michael T. Richter <[hidden email]> wrote:
I have a dream.  It's not a little dream.  It's a big dream.  I have a dream that someday I can find a UNIX/Linux text editor for Haskell hacking (and possibly two or three hundred other programming languages, although that's optional) that can give me all of the following:

  1. A real GUI environment that takes into account some of the HID advances made in the past 30 years.  (Emacs and Vim don't count, in other words.)
  2. Good quality syntax highlighting for Haskell that includes all of the usual syntax highlighting goodies, plus:
  3. the ability to seamlessly handle raw Haskell and both common forms of Literate Haskell;
  4. the ability to properly highlight Haddock comments;
  5. the ability to highlight functions and types from libraries (user-expandable) differently from local functions and types.
  6. Line folding to hide and show blocks of code.
  7. Code completion (user-expandable, ideally) for common library functions, type declarations, etc.
  8. Easy, quick access to online documentation for said functions and declarations.
  9. Good (ideally scriptable) access to external utilities for compilation, debugging, profiling, type inference, project management, etc.
  10. A good plug-in system (ideally written in Haskell?) for expansion.

Is there such a beast available out there somewhere?  If not, is such a beast lurking in the background ready to pounce in the near future?
--
Michael T. Richter <[hidden email]> (GoogleTalk: [hidden email])
I have to wonder why people think that when they can't manage local personnel within easy strangling and shooting distance, then they can manage personnel thousands of miles away that have different languages, cultures, and business rules. (Joe Celko)

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
<a onclick="return top.js.OpenExtLink(window,event,this)" href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank"> http://www.haskell.org/mailman/listinfo/haskell-cafe




_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Editor

Michael Richter-5
In reply to this post by Neil Mitchell
On Mon, 2007-21-05 at 13:41 +0100, Neil Mitchell wrote:
Michael is asking "is there something more GUI like?" - to
which the answer is yes - Visual Haskell -

Sadly what I was asking was "is there anything more GUI like for Linux".  ;)  It doesn't surprise me that Macs and Windows boxes have something like what I'm looking for.  Usability testing isn't alien to those platforms' mindsets.  Unfortunately Macs are basically unavailable where I live.  (I guess I could travel 24 hours round-trip to the nearest Apple store I know of and pay five months' spending money for a MacBook, not to mention the ticket prices, but that's not going to happen, I'm afraid.)  And Windows as a platform lacks certain features I like (including stability, security and an absence of "Trusted" Computing) that made me turn away from it in the first place.  It's one of those trade-off situations, but sometimes I really wish this particular trade-off weren't necessary.

--
Michael T. Richter <[hidden email]> (GoogleTalk: [hidden email])
Theory is knowledge that doesn't work. Practice is when everything works and you don't know why. (Hermann Hesse)

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe

signature.asc (196 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

RE: Editor

Bayley, Alistair-2
In reply to this post by Michael Richter-5
> 1. A real GUI
> 2. Good quality syntax highlighting for Haskell..., plus:
> 3. raw Haskell both forms of Literate Haskell;
> 4. properly highlight Haddock comments;
> 5. highlight functions and types from libraries differently
from local
> 3. Line folding to hide and show blocks of code.
> 4. Code completion
> 5. Easy, quick access to online documentation
> 6. access to external utilities for compilation, debugging,
profiling, type inference,
> project management, etc.
> 7. A good plug-in system

Having dismissed Visual Haskell for being Windows-only, have you
considered EclipseFP? It doesn't tick all of your boxes, but maybe it
goes far enough in the right direction. AFAICT it fulfills 1, 2.3, 2.5
(but I'm not sure about this), 3, 6, and 7 (ish - plugins would be
written in Java).

Alistair
*****************************************************************
Confidentiality Note: The information contained in this message,
and any attachments, may contain confidential and/or privileged
material. It is intended solely for the person(s) or entity to
which it is addressed. Any review, retransmission, dissemination,
or taking of any action in reliance upon this information by
persons or entities other than the intended recipient(s) is
prohibited. If you received this in error, please contact the
sender and delete the material from any computer.
*****************************************************************
_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Editor

Arthur van Leeuwen
In reply to this post by Michael Richter-5

On 21-mei-2007, at 13:56, Michael T. Richter wrote:
>
> Hell, even comparing the out-of-the-box syntax highlighting support  
> in Gedit vs. (G)Vim is instructive.  Code like  
> "makeRandomValueST :: StdGen -> (MyType, StdGen)" (which,  
> incidentally, was far easier to copy from in Gedit than GVim to  
> paste into this message) only differentiates "::" and "->" from the  
> text and delimiters in GVim while in Gedit (keeping in mind that  
> Gedit isn't a very good editor!) differentiates those plus  
> "makeRandomValueST" vs. "StdGen" and "MyType".  And the parentheses.

This is an interesting take on things. What to highlight and why is
decidedly non-trivial. Personally, I strongly *dislike* highlighting
of user-defined identifiers. And honestly, in Haskell, most identifiers
are user-defined. Furthermore, the haskell vim highlighter actually
allows you to highlight delimiters, True and False, the names of a
number of types, and the names of debugging functions. It requires
settings to turn that on though, as the highlighter should be as  
minimally
visually intrusive in its default setting as possible. Or at least,  
that's what
I think, and I was the last person to get his grubby paws on vim's  
highlighter
for Haskell. It does highlight literate Haskell code quite nicely  
however,
both in bird track style and in TeX style. It does expect literate  
Haskell
to be in .lhs files though...

Note that it is somewhat tricky to distinguish between the occurences
of the a's before and after the semicolon in the following:
        map :: ( a -> b ) -> [a] -> [b]; map f (a:as) = f a : (map f as)

I'd like to see what GEdit does to that. :)

Doei, Arthur van Leeuwen.

--

   /\    / |       [hidden email]       | Work like you don't need  
the money
/__\  /  | A friend is someone with whom | Love like you have never  
been hurt
/    \/__ | you can dare to be yourself   | Dance like there's nobody  
watching



_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Editor

Leif Frenzel-2
In reply to this post by Bayley, Alistair-2
Bayley, Alistair wrote:

>> 1. A real GUI
>> 2. Good quality syntax highlighting for Haskell..., plus:
>> 3. raw Haskell both forms of Literate Haskell;
>> 4. properly highlight Haddock comments;
>> 5. highlight functions and types from libraries differently
> from local
>> 3. Line folding to hide and show blocks of code.
>> 4. Code completion
>> 5. Easy, quick access to online documentation
>> 6. access to external utilities for compilation, debugging,
> profiling, type inference,
>> project management, etc.
>> 7. A good plug-in system
>
> Having dismissed Visual Haskell for being Windows-only, have you
> considered EclipseFP? It doesn't tick all of your boxes, but maybe it
> goes far enough in the right direction. AFAICT it fulfills 1, 2.3, 2.5
> (but I'm not sure about this), 3, 6, and 7 (ish - plugins would be
> written in Java).
There is also some experimentation under way to implement plugins in
Haskell: http://leiffrenzel.de/eclipse/cohatoe/ The Haskell code is
plugged into Eclipse via hs-plugins. However, the ultimate entry point
to the IDE is still Eclipse's, so there will be some Java/XML
boilerplate necessary for getting a plugin hooked.

Thanks && ciao,
Leif

>
> Alistair
> *****************************************************************
> Confidentiality Note: The information contained in this message,
> and any attachments, may contain confidential and/or privileged
> material. It is intended solely for the person(s) or entity to
> which it is addressed. Any review, retransmission, dissemination,
> or taking of any action in reliance upon this information by
> persons or entities other than the intended recipient(s) is
> prohibited. If you received this in error, please contact the
> sender and delete the material from any computer.
> *****************************************************************
> _______________________________________________
> Haskell-Cafe mailing list
> [hidden email]
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Editor

Claus Reinke
In reply to this post by Michael Richter-5
>Vim is eliminated before it reaches the gate because it's a modal
>editor.  Even with GVim in place, it still has that modal stench to it
>that leaps up and bites at awkward moments.

that's a bit more specific, at least. but as far as i recall, modes were
considered bad for specific reasons, such as 'users can't see where
they are, modewise',  'functionality becomes unavailable in a mode',
'users have no way to get out of a mode', etc. and most of these
specific issues have actually been addressed in vim.

so, what remains is convenience: do i always want to start navigating
from some home mode (meaning long, absolute, command navigation
strings), or do i want the interface to remember where i navigated last
(meaning short, relative, command navigation strings)? what used
to be called modes (bad, or rather: badly implemented) is now called
context-sensitivity (good, or rather: good, if done well).

you do not want your fortran- or xml-editing commands around
when editing haskell, so unless you're prefixing every command
with 'haskell-', or refuse to use haskell-specific commands, you're
editing haskell in a haskell-mode, right?

you could use insert mode as your home mode, and wrap each
command sequence to leave insert mode and to return to it, so
'dd' would become '<esc>ddi'. or you could use normal mode
as your home mode, and make sure to end every excursion into
insert mode with '<esc>'. or you could use vim as it was intended:
using insert mode, or normal mode, for what they are good at,
and switch between them whenever you like.

have you tried 'easy vim', btw? i don't like it myself, but it is useful
for getting students started quickly (':help easy', ':help evim-keys'):

    -y  Easy mode.  Implied for |evim| and |eview|.  Starts with
      'insertmode' set and behaves like a click-and-type editor.
      This sources the script $VIMRUNTIME/evim.vim.  Mappings
      are set up to work like most click-and-type editors, see
      |evim-keys|.  The GUI is started when available.
      {not in Vi}

>files of either stripe) and adjust your editing preferences.  It's not a
>particularly good programmer's editor, but look at the lovely tabbed
>dialog box with all those lovely HID bits like checkboxes, radio
>buttons, spin buttons, dropdown lists, lists, etc.  Now do the same in
>GVim and get ... a text file with some editing tricks to make things
>slightly easier.  (It's not immediately obvious how to get rid of it
>either.)  

you're referring to ':options', i assume? and you're aware that the
sheer number of options would make a single dialog box hard to
design in any useful way? gvim actually permits setting a whole
lot of options via its menus, and i tend to set options either in
my vimrc file or in a filetype plugin, or directly, using ':set'+tab
for command-completion/navigation.

yes, the ':options' window doesn't look pretty, merely functional.
on the positive side, it is just another text window, so you navigate
in it they same way as in any other text window (no separate
dialogue-box-mode!-). and since vim is about programmers
editing (program) text, handling everything as text is consistent.

claus

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Editor

David House
In reply to this post by Michael Richter-5
On 21/05/07, Michael T. Richter <[hidden email]> wrote:
> Easy, quick access to online documentation for said functions and declarations.

I'm writing this for Emacs right now. At the moment both Emacs and Vim
can access everything that GHCi has to offer on a function, which
means where it's defined, it's type and so on, but not Haddock
documentation. I'm extending haskell-mode's inf-haskell.el to take
this into account.

--
-David House, [hidden email]
_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Editor

Ben Moseley
In reply to this post by Leif Frenzel-2
You mentioned a "dream" ....

Have you looked at Yi? ....might be worth a peek if you're prepared  
to work towards your dream.

http://www.haskell.org/haskellwiki/Yi

...a long way to go - but it certainly nails #7!

--Ben

On 21 May 2007, at 15:44, Leif Frenzel wrote:

> Bayley, Alistair wrote:
>>> 1. A real GUI
>>> 2. Good quality syntax highlighting for Haskell..., plus: 3. raw  
>>> Haskell both forms of Literate Haskell; 4. properly highlight  
>>> Haddock comments; 5. highlight functions and types from  
>>> libraries differently
>> from local
>>> 3. Line folding to hide and show blocks of code.
>>> 4. Code completion
>>> 5. Easy, quick access to online documentation 6. access to  
>>> external utilities for compilation, debugging,
>> profiling, type inference,
>>> project management, etc. 7. A good plug-in system
>> Having dismissed Visual Haskell for being Windows-only, have you
>> considered EclipseFP? It doesn't tick all of your boxes, but maybe it
>> goes far enough in the right direction. AFAICT it fulfills 1, 2.3,  
>> 2.5
>> (but I'm not sure about this), 3, 6, and 7 (ish - plugins would be
>> written in Java).
> There is also some experimentation under way to implement plugins  
> in Haskell: http://leiffrenzel.de/eclipse/cohatoe/ The Haskell code  
> is plugged into Eclipse via hs-plugins. However, the ultimate entry  
> point to the IDE is still Eclipse's, so there will be some Java/XML  
> boilerplate necessary for getting a plugin hooked.
>
> Thanks && ciao,
> Leif
>
>> Alistair
>> *****************************************************************
>> Confidentiality Note: The information contained in this message,
>> and any attachments, may contain confidential and/or privileged
>> material. It is intended solely for the person(s) or entity to
>> which it is addressed. Any review, retransmission, dissemination,
>> or taking of any action in reliance upon this information by
>> persons or entities other than the intended recipient(s) is
>> prohibited. If you received this in error, please contact the
>> sender and delete the material from any computer.
>> *****************************************************************
>> _______________________________________________
>> Haskell-Cafe mailing list
>> [hidden email]
>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
> _______________________________________________
> Haskell-Cafe mailing list
> [hidden email]
> http://www.haskell.org/mailman/listinfo/haskell-cafe

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Editor

Albert Y. C. Lai
In reply to this post by Michael Richter-5
Michael T. Richter wrote:
>    1. A real GUI environment that takes into account some of the HID
>       advances made in the past 30 years.  (Emacs and Vim don't count,
>       in other words.)

I for my life think HID refers to human input devices: keyboard, mouse,
joystick, gamepad, pedal, microphone, touchscreen... When this HID
statement is brought up, the first and only thing I think of is the
recent Mathematica 6: It supports the gamepad for rotating 3D plots.
Apart from that, absolutely no programming environment takes into
account much of the HID advances in the past 30 years; they only go up
to keyboard and mouse.

GUI, menu, modal, modeless... those would be HCI.

But that inspires some real fantasy for the next century.

I want to watch a function definition as a 3D thunk, and rotate it with
the gamepad. It is even better than a parse tree, because I want "let
x2=x*x in x2+x2" to be displayed as:

      *
     / \
    x2  x2
     |  |
     -----------
               +
              / \
              \ /
               x

or any topological equivalence. At my selection, some nodes stick out
blurbs containing their types or haddocks. No more 20th century dark age
dogma of vertical serialization of horizontal serialization of
characters euphemized as "plain text file", the least problem of which
is the sorry kludge of operator precedences and parenthesizing. In this
thread I ask, "can programming be liberated from the plain text file,
now that it is liberated from the von Neumann style?"

Module dependency graphs receive the same treatment. Modules in a
project are shown as a 3D graph. Using the gamepad, I rotate the graph,
bring a module to the forefront, and press the circle button to open it.

Debugging has never been more enticing! All CAFs and thunks are
displayed in 3D. (As usual, you can use the gamepad to change
perspective at will.) A small virtual organism, dubbed "the bug", walks
the thunks and does the graph reductions. You can of course interrupt
the bug and give explorative instructions. You may want to rename this
activity to "bugging". Imperative communities may boast the best
debuggers, but only in Haskell you find the best buggers!

(On second thought, dubbing the virtual organism "the alligator" may bug
you less.)
_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Editor

Alexis-12
In reply to this post by Claus Reinke
On Tuesday 22 May 2007 02:30, Claus Reinke wrote:
> >Vim is eliminated before it reaches the gate because it's a modal
> >editor.  Even with GVim in place, it still has that modal stench to it
> >that leaps up and bites at awkward moments.
>
> that's a bit more specific, at least. but as far as i recall, modes were
> considered bad for specific reasons, such as 'users can't see where
> they are, modewise',  'functionality becomes unavailable in a mode',
> 'users have no way to get out of a mode', etc. and most of these
> specific issues have actually been addressed in vim.

Since no-one else has done so, i thought i should mention Cream:

        http://cream.sourceforge.net/featurelist.html

Cream is a customisation of Vim/gVim, providing a more contemporary GUI style
and single-mode editing (although modal editing is available if one wants
it)  - with all the power of Vim under the hood. :-)


Alexis.
_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
12