chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] IDE for Beginners


From: Dan Leslie
Subject: Re: [Chicken-users] IDE for Beginners
Date: Thu, 23 Apr 2015 09:55:44 -0700

Hi Jeremy,

I'd be happy to make Emacs + Geiser work better on Windows.

It would be a great first step if you could file a bug on the Geiser
GitHub page that reports the issue in detail. From there you can track
the progress as I whittle away at it.

-Dan

Jeremy Steward <address@hidden> writes:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hey all, I've worked using CHICKEN on Windows recently, and while I
> don't want to cite a holy war, I'll try to weigh in where I can. The
> below thoughts are my own, so don't treat this as if I'm dictating
> which editor is best, it's just my opinion. This is also my first
> message on the mailing list, so hi!
>
> First and foremost, I am unaware of any general purpose IDE for any
> Scheme language outside of DrRacket, so I cannot recommend something
> specially tailored. I imagine you really just want to be able to send
> text to the REPL, whether it's within the editor itself or something
> better than cmd.exe. The options then become one of the following:
>
> * SublimeText / SublimeREPL (version 2 or 3)
> * Emacs + Geiser
> * Emacs + SLIME
> * Vim + slimv
> * Any editor + a better console emulator to paste code in
>
> I use / have used all of the above with the exception of SublimeText,
> so I have a fairly rough idea of how each of them plays out. The best
> Scheme development experience in my opinion is Emacs + Geiser
> (http://www.nongnu.org/geiser/), but it's not the easiest to take
> advantage of, mostly because it requires that you be able to call csi
> from the cmd.exe on Windows. As someone who mostly takes advantage of
> CHICKEN via cygwin, this poses a problem as you need to ensure you
> don't link CHICKEN to cygwin.dll when building. If this is over your
> head, or you don't know what cygwin is, you likely don't have to worry
> about it.
>
> Emacs + SLIME comes close, but the chicken-slime egg doesn't contain
> all the features that you expect from a full SWANK server for various
> reasons (things like undef, etc.), and requires that you have a
> separate console window running the local SWANK server, which may or
> may not be annoying.
>
> Vim + slimv is basically the same as Emacs + SLIME, and is personally
> what I use. I like vim for various reasons, mostly due to preference
> of the keybinds (which are slightly harder to learn than Emacs, to be
> fair). A lot of Lisp/Scheme users will probably tell you to leave vim
> behind since Emacs is the holy gospel of parentheses development, but
> honestly it's not much worse and after a little customization I
> believe it to be better for my workflow.
>
> All said and done, Geiser is a much better (IMO) way of interacting
> with Scheme code / the REPL, and is likely where you'll see more
> developments in the future. My understanding here is that the author
> of the chicken-slime egg is the same person who contributed the code
> necessary to get chicken working with scheme.
>
> If you want to set up Emacs with either SLIME or Geiser easily, be
> sure to check out Spacemacs (https://github.com/syl20bnr/spacemacs),
> which is an interesting project to get an Emacs installation that's
> easy to set up and easy to configure for beginners. You can even use
> vim keybinds via Emacs' Evil plugin, if you want, but I think in this
> case you'd likely not want to. It asks you what keybinds you want to
> use when you first start it up, so it doesn't really matter.
>
> Lastly, if you think all the above is still too much effort and you
> just want to use Notepad++ or some other text editor, and you just
> want to be able to easily paste code into a terminal, check out cmder
> on Windows (http://gooseberrycreative.com/cmder/). It's a better
> terminal emulator that wraps around cmd.exe and comes with some nicer
> defaults. You can paste code easily using Ctrl+Shift+v or
> Shift+insert, and most of the keybinds are customizable if you really
> want it. Although it's not as integrated as Emacs + Geiser or Emacs +
> SLIME, it is one of the easier solutions to get up and running. I
> personally use cmder for everything when I'm on windows, from cygwin
> shells to Powershell to the very occasional cmd.exe.
>
> That's about all I can say about development on Windows. Unfortunately
> we don't have a fully fledged IDE like DrRacket, but there's some
> pretty cool stuff out there to get started.
>
> If you do have further questions regarding any of the above, don't
> hesitate to email me, as I can try to help walk you through the
> process (unless you're trying to use SublimeText, haha).
>
> Regards,
>
> P.S. As a final note Windows Powershell is not bad at all, it's just
> not bash / zsh. In terms of functionality it's quite good, and with
> chocolatey/PSReadline it gets even better. Anyways, food for thought.
>
> On 22/04/15 04:25 AM, mfv wrote:
>> Hello Abby,
>> 
>> please forgive me the late and short reply. I am currently under an
>> extreme time shortage due to business and family matters (yes, best
>> of the world at once).
>> 
>> I would suggest you to try the solution that worked for me back
>> then.
>> 
>> I got my chicken emacs package to work with the kind help of
>> 'bahman', whom I met either on this list or in #chicken.
>> Unfortunalty, I did not write down any step by step guide back
>> then. However, as far I can remember, the usage of the package was
>> fairly simple: add the package it to your folder, and run C-u M-X
>> run-scheme on a frame.
>> 
>> The package can be found at:
>> 
>> https://www.dropbox.com/sh/rxjt0bn5enpw4vn/AAAdvn2C_l_6qZU5PmWCMYxoa?d
> l=0
>>
>>  Cheers,
>> 
>> Piotr
>> 
>> 
>> 
>> On Mon, Apr 13, 2015 at 01:10:09PM -0700, Abby A wrote:
>>>> 
>>>> [Chicken-users] IDE for Beginners 
>>>> <https://www.mail-archive.com/address@hidden&q=su
> bject:%22%5BChicken-users%5D+IDE+for+Beginners%22&o=newest>
>>>>
>>>>
>>>> 
> mfv
>>>> <https://www.mail-archive.com/address@hidden&q=fr
> om:%22mfv%22>
>>>> Tue, 02 Dec 2014 05:12:32 -0800 
>>>> <https://www.mail-archive.com/address@hidden&q=da
> te:20141202>
>>>>
>>>>
>>>> 
> Hi there,
>>>> 
>>>> I am currently using Sublime Text 2 with Sublime REPL to fool
>>>> around with Chicken Scheme. It does not work perfect, but until
>>>> now it has been the best solution apart from using the REPL in
>>>> the command prompt in Windows 7.
>>>> 
>>>> However, it seems that sublimeREPL can not handle larger data
>>>> structures. I froze once I read it a 20 kB cvs file.
>>>> 
>>>> I have fooled around with a couple of other editors that have a
>>>> REPL functionality, notably LightTable and Emacs. I liked the
>>>> first option a lot, and was definatly overwhelmed bu the
>>>> second. Emacs might be extremely usful, but I do not plan to
>>>> learn all those crypting commands to learn to write and REPL
>>>> some scheme code.
>>>> 
>>>> Is there a simplified version of EMACS with an installer for
>>>> Windows based systems?
>>>> 
>>>> What light weight REPL-IDE solution do you use except Emacs?
>>>> Windows Power Shell (this was a joke.. )?
>>>> 
>>>> Any nice guides on how to set up ST2/SublimeREPL properly?
>>>> 
>>>> Cheers,
>>>> 
>>>> Piotr
>>>> 
>>>> 
>>>> 
>>>> 
>>> Hello Piotr, I am trying to run chicken scheme in emacs in a REPL
>>> type mode with scheme file in upper-half window and REPL in the
>>> lower-half window and to be able to seamlessly communicate.
>>> 
>>> I am confused about my settings and it does not work properly.
>>> 
>>> When I type C-c C-c after a simple define, I get something like
>>> this in the lower REPL.
>>> 
>>> (c) 2008-2013, The Chicken Team (c) 2000-2007, Felix L.
>>> Winkelmann Version 4.8.0.5 (stability/4.8.0) (rev 5bd53ac) 
>>> linux-unix-gnu-x86 [ manyargs dload ptables ] compiled 2013-10-03
>>> on aeryn.xorinia.dim (Darwin)
>>> 
>>> #;1> Error: unbound variable: compile
>>> 
>>> Call history:
>>> 
>>> <syntax>      (compile (quote (begin (define (mult6 x) (* x
>>> 6))))) <syntax>      (quote (begin (define (mult6 x) (* x 6)))) 
>>> <syntax>      (##core#quote (begin (define (mult6 x) (* x 6)))) 
>>> <eval>      (compile (quote (begin (define (mult6 x) (* x 6)))))
>>> <--
>>> 
>>> Basically, I need some help and explanation on your instructions
>>> to move step by step with proper understanding of the system of
>>> communication assumed by you so I can debug it.
>>> 
>>> There is a lot of confusion simply because of several systems.
>>> Geiser only supports guile and racket. The quack.el under ubuntu
>>> release - "Ubuntu 14.04.2 LTS", namely the package
>>> "emacs-goodies-el" which gives a broken message but nevertheless
>>> installs a bunch of .el files like geiser and quack.
>>> 
>>> Definitely, I need some help and pointers with your Generosity.
>>> 
>>> cheers Abby
>>> 
>>> 
>>> Here is a diagnostic from apt.
>>> 
>>> % apt show emacs-goodies-el Package: emacs-goodies-el Priority:
>>> optional Section: editors Installed-Size: 3,592 kB Maintainer:
>>> Ubuntu Developers <address@hidden> 
>>> Original-Maintainer: Peter S Galbraith <address@hidden> Version:
>>> 35.8ubuntu2 Replaces: emacs-goodies-extra-el Provides:
>>> emacs-goodies-extra-el Depends: emacs24 | emacsen, bash (>=
>>> 2.05a) | bash-static, dpkg (>= 1.15.4) | install-info Recommends:
>>> dict, wget, perl-doc Download-Size: 654 kB Bugs:
>>> https://bugs.launchpad.net/ubuntu/+filebug Origin: Ubuntu 
>>> Supported: 5y APT-Manual-Installed: yes APT-Sources:
>>> http://archive.ubuntu.com/ubuntu/ trusty/main i386 Packages 
>>> Description: Miscellaneous add-ons for Emacs This package
>>> contains: align-string - align string components over several
>>> lines; all - edit all lines matching a given regexp; apache-mode
>>> - major mode for editing Apache configuration files; ascii -
>>> ASCII code display for character under point; auto-fill-inhibit -
>>> finer grained control over auto-fill-mode; bar-cursor - change
>>> your cursor to a bar instead of a block; bm - visible bookmarks
>>> in buffers; boxquote - quote texts in nice boxes; browse-huge-tar
>>> - browse tar files without reading them into memory; 
>>> browse-kill-ring - browse, search, modify the kill ring; clipper
>>> - save strings of data for further use; coffee - now Emacs can
>>> even brew coffee; color-theme - changes the colors used within
>>> Emacs; csv-mode - major mode for comma-separated value files; 
>>> ctypes - enhanced Font lock support for custom defined types; 
>>> dedicated - make a window dedicated to a single buffer; df -
>>> display in the mode line space left on devices; dict - wrapper
>>> around the 'dict' command. (Depends on bash and dict) diminish -
>>> shorten or erase modeline presence of minor modes; dir-locals -
>>> provides directory-wide local variables; edit-env - display,
>>> edit, delete and add environment variables; egocentric -
>>> highlight your name inside emacs buffers; eproject - assign files
>>> to projects, programatically ff-paths - $PATH-like searching in
>>> C-x C-f; filladapt - enhances Emacs's built-in adaptive fill; 
>>> floatbg - slowly modify background color; framepop - display
>>> temporary buffers in a dedicated frame; graphviz-dot-mode.el -
>>> mode for the dot-language used by graphviz (att). 
>>> highlight-beyond-fill-column - highlight lines that are too
>>> long; highlight-completion - highlight completions in the
>>> minibuffer; highlight-current-line - highlight line where the
>>> cursor is; home-end - alternative Home and End commands; htmlize
>>> - HTML-ize font-lock buffers; initsplit - split customizations
>>> into different files; joc-toggle-buffer - fast switching between
>>> two buffers; joc-toggle-case - a set of functions to toggle the
>>> case of characters; keydef - a simpler way to define key
>>> mappings; keywiz - Emacs key sequence quiz; lcomp -
>>> list-completion hacks; maplev - major mode for Maple; map-lines -
>>> map a command over lines matching a regexp; markdown-mode - major
>>> mode for editing Markdown files; marker-visit - navigate through
>>> a buffer's marks in order; matlab - major mode for MatLab dot-m
>>> files; minibuf-electric -  electric minibuffer behavior from
>>> XEmacs; minibuffer-complete-cycle - cycle through the
>>> *Completions* buffer; miniedit - enhanced editing for minibuffer
>>> fields; mutt-alias - lookup and insert the expansion of mutt mail
>>> aliases; muttrc-mode - major mode for editing Mutt config files; 
>>> obfusurl - obfuscate an URL; pack-windows - resize all windows to
>>> display as much info as possible; perldoc - show help for Perl
>>> functions and modules. (Depends on perl-doc); pod-mode - major
>>> mode for editing POD files; pp-c-l - display Control-l characters
>>> in a pretty way; projects - create project-based meaningful
>>> buffer names; prot-buf - protect buffers from accidental
>>> killing; protocols - perform lookups in /etc/protocols; quack -
>>> enhanced support for editing and running Scheme code; rfcview -
>>> view IETF RFCs with readability-improved formatting; services -
>>> perform lookups in /etc/services; session - saves settings
>>> between Emacs invocations and visits to a file; setnu -
>>> setnu-mode, a vi-style line number mode; shell-command - enables
>>> tab-completion for shell-command; show-wspace - highlight
>>> whitespaces of various kinds; silly-mail - generate bozotic mail
>>> headers; slang-mode.el - a major-mode for editing S-Lang
>>> scripts; sys-apropos - interface for the *nix apropos command; 
>>> tabbar - Display a tab bar in the header line; tail - "tail -f" a
>>> file or a command from within Emacs; tc - cite text with proper
>>> filling; thinks - quote texts in cartoon-like think bubbles; tlc
>>> - major mode for editing Target Language Compiler scripts; tld -
>>> explain top-level domain names; todoo - major mode for editing
>>> TODO files; toggle-option - easily toggle frequently toggled
>>> options; twiddle - mode line hacks to keep you awake; under -
>>> underline a region with ^ characters; upstart-mode - mode for
>>> editing upstart files; xrdb-mode - mode for editing X resource
>>> database files. . See /usr/share/doc/emacs-goodies-
>>>> 
>>>> el/README.Debian.gz for a short description of all files, or
>>>> the Info node `emacs-goodies-el' for details.
>> 
>> _______________________________________________ Chicken-users
>> mailing list address@hidden 
>> https://lists.nongnu.org/mailman/listinfo/chicken-users
>> 
>
> - -- 
> Jeremy Steward
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2
>
> iQIcBAEBAgAGBQJVOHWTAAoJEHVwwAZUeZnZCa0QAJoqQF2xtSXmttuZpssaAxLY
> 87D5KP1lcJ9AmyXGCeWGlIvv+mTET6oBwtW9TLJFvMYx7RzBwBQFxmu4Hk94reMN
> 9845D7mXQCTWLAVHDfJ0Q8KfWKSgmouWE+tIEOMdliDky+ikcoNtGkD3bCLNBM/G
> wRhj14vrlIx80QbG9uDVLYgoNBs5nkbopTT3nfVXq8TwY8Cc0x+IhOPo1kNCxCfk
> QLdvVfeEw48HvWdKhm/H0MPgx/+iB9uyxkk+XgRMbQJpuRxqe5NcRPgBpaYpx0E9
> cXn38ODRYtE7pWzLCriewsBLSNwFXNdT1bNfl7hjA4fgz3vdUOmp1dVPsyU3trif
> ADEatcee8wWEa0Bsggeb264iYNKEqwrpw18x7z/lvNLlHUeOW8Sud90QOYHyBa18
> qtn0mkHFrTSs4A3f7GpS4nWreGokolkkysFbRmS1aDbIgEDCKVZjhRPMoaPZdjJf
> CpXmMMGKrqwI1G77xkBlbZ3j4bho9QAEqG99QKIqXr156RPEzxE6elaOBruJwW4t
> bozng/LpjHA2RD48+fjT6cjcxHL3rJtLpvbg++PX96iOVnf8Whm5ltWWhTG0B03H
> 0DYSd+jHajMhRGsOqCjbvnJkw1OK4+Oj/NrycpmqW5jbWMRAN70OD0LaBlHCFEkT
> rq8YH1M+FgtOzrsdk0uy
> =3Q/3
> -----END PGP SIGNATURE-----
>
> _______________________________________________
> Chicken-users mailing list
> address@hidden
> https://lists.nongnu.org/mailman/listinfo/chicken-users

-- 
-Dan Leslie



reply via email to

[Prev in Thread] Current Thread [Next in Thread]