Hello, I’m Sebastian Wiesner, software developer by occupation and by passion.

I used to write Python and C++ for almost a decade, but nowadays I write Scala for a living, and do Haskell for fun and a better world—and a bit of Rust from time to time. I’ve also done a bit of OCaml, and occasionally work on iOS Apps with Swift. And I use Emacs for (almost) all of this.

I maintain a couple of Emacs packages, most notably Flycheck and Puppet Mode, and I write about Emacs, Haskell programming, and various other things in this blog.

You can find my open source work on Github, read my answers on Stack Overflow and follow me on Twitter.

Posts

Posts are available in the Archive. Latest posts:

  1. April 29, 2015 Apr 29, 15 Configuring buffer display in Emacs posted in emacs, buffer, windows and customization

    I guess every Emacs user knows this particular phenomenon: Windows constantly pop up at almost, but not quite, entirely undesired places. It is a surprisingly hard challenge to make Emacs display buffers in a sane way. Packages like winner and pop-win tell stories about the pain of generations of Emacs users. Well, it used to be a hard, but now it became much easier in Emacs 24.1 with the new display-buffer-alist option.

    Read more…

  2. January 20, 2015 Jan 20, 15 Why package.el? posted in emacs, configuration and packages

    Today, an Emacs user on Reddit asked how to organise their Emacs extensions, specifically whether to use package.el or a “home-made” solution. This post answers that question. It’s essentially a copy of a Reddit comment of mine from about a year ago.

    Read more…

  3. January 6, 2015 Jan 6, 15 My Emacs Configuration with use-package posted in emacs and configuration

    In the past I used to keep my Emacs configuration completely in a single init.el file. For a long time this worked quite well, but of late my configuration became increasingly messy: Package configuration was mixed with utility functions, key bindings, and even larger code for entirely new features. Needless to say that my init file was in dire need of a very thorough cleanup.

    I had heard a lot of good things about John Wiegley’s use-package macro, and in the days after Christmas I decided to sit down and try to refactor my Emacs configuration with use-package. The result was very pleasant, and much better than I had dared to hope.

    Read more…

  4. December 23, 2014 Dec 23, 14 My Christmas present for fellow Emacs users: Flycheck 0.22 posted in emacs and flycheck

    With Christmas almost here, it’s time for me to present my gift to you, my fellow Emacs users: A brand new shiny release of Flycheck, now at version 0.22. At the surface little has changed, but under the hood Flycheck made a big step towards a 1.0 release, and provides even more features to write your own syntax checkers.

    The release announcement and the changelog have all the details, but in this post I’d like to give you a short idea of what I think are the most important features of this new release.

    Read more…

  5. December 23, 2014 Dec 23, 14 TIL about Bug Reference Mode posted in emacs and package

    There’s not a day in which I don’t find a new gem for Emacs. Today it’s the built-in bug-reference-mode. This fancy little thing turns issue references in text into clickable buttons that browse the corresponding issue in a bug tracker. I discovered it via the bug-reference-github package, which automatically configures the mode for files in Github repositories.

    Read more…

  6. December 3, 2014 Dec 3, 14 Generic syntax checkers in Flycheck posted in emacs and flycheck

    In two years of maintaining Flycheck I received many wishes and feature requests. I implemented many, discarded some, but I never came around to add the most requested feature and fix the oldest issue still open: Check a buffer with an arbitrary Emacs Lisp function.

    Now, after more than one year of waiting, this feature is finally there: Flycheck now supports “generic syntax checkers”, which call synchronous or asynchronous Emacs Lisp functions instead of invoking external commands. They are “generic” because they are essentially a superset of normal syntax checkers: In fact, regular syntax checkers are now called “command syntax checkers” and implemented on top of this new feature, as a specific kind of generic checkers.

    Read more…

  7. October 26, 2014 Oct 26, 14 Flycheck 0.21 released posted in emacs and flycheck

    I’ve just released Flycheck 0.21, the result of two months of work. It’s already on MELPA and Marmalade, so take a look at the release annoucement and the changelog, and update Flycheck with M-x list-packages RET U x.

    Read more…

  8. September 14, 2014 Sep 14, 14 Emacs StackExchange proposal posted in emacs

    There is a proposal for a separate Emacs site on the popular StackExchange network. It needs your help! Please commit to it in order to bring it to beta!

    Read more…

  9. September 13, 2014 Sep 13, 14 Boosting Which Func Mode posted in emacs and mode-line

    Which Func Mode shows the name of the current “tag” in the mode line. A tag is whatever the current major mode adds to its imenu index, e.g. function names in Emacs Lisp, class declarations in Python, or section names in Markdown.

    By default, Which Func Mode just dumps the entire tag name at the very end of the mode line, after the entire list of minor modes, which is neither particularly sophisticated nor particularly visible. When I redesigned my mode line, I already moved it to a more prominent place in my mode line, by changing the position of mode-line-misc-info.

    In this post I’ll show you how to boost the tag name itself with some nifty tricks.

    Read more…

  10. August 12, 2014 Aug 12, 14 Flycheck 0.20 out posted in emacs and flycheck

    I’m proud to release Flycheck 0.20. Highlights are new support for Ada and Fortran, improved Rust crate support, better key bindings in the error list and customizable mode line indicators.

    Please read the release announcement and take a look at the changelog, and enjoy the new features.

    Read more…

  11. August 12, 2014 Aug 12, 14 Emacs script pitfalls posted in emacs

    Update (November 22, 2014): I fixed a fundamental flaw in the section about argument processing, reported by a reader of this blog.


    Emacs isn’t just an editor, it’s an entire Emacs Lisp interpreter and environment. We can use Emacs Lisp not only to extend and customize our beloved editor, but also to write entire programs and applications. Nic Ferrier’s elnode server is probably the most ambitious Emacs Lisp application of this sort, but we can start at a smaller scale and try to write our shell scripts and tools with Emacs Lisp.

    However, it turns out that writing programs in Emacs Lisp is more intricate than it seems at a first glance. Emacs decades-long history as interactive application have left deep marks in Emacs and Emacs Lisp, which make independent noninteractive scripts surprisingly difficult.

    Read more…

  12. July 30, 2014 Jul 30, 14 New Mode Line support in Flycheck posted in emacs, flycheck and mode-line

    While re-designing my Emacs mode line recently, I realized that the way Flycheck used the mode line had been quite wrong all the time.

    This post shows what was wrong in Flycheck, and how it was fixed. I hope that this helps other Emacs developers to avoid the same mistake. I’ll also show you how my personal Flycheck mode line now looks like, to show you how proper mode line support enables customizations that were simply impossible before.

    Read more…

  13. July 26, 2014 Jul 26, 14 Make your Emacs Mode Line more useful posted in emacs, mode-line and customization

    Customizing Emacs Mode Line was always some kind of black magic to me. The default mode line setup never worked quite well, but I never dared to customize it. Instead, I have been using packages such as Powerline or, more recently, Smart Mode Line. These are an improvement over the default mode line, but never quite worked as I wished.

    Recently, when I couldn’t get Smart Mode Line to display battery info at the place where I wanted it to be, I finally got rid of it, and decided to settle down, read the manual, and work my way towards my own mode line setup. Turns out, that this is not at all difficult, and the result—even though far from finished—is already quite pleasing:

    Read more…

  14. July 18, 2014 Jul 18, 14 Ansible Documention in Emacs posted in emacs and ansible

    Update (October 2, 2014): This feature is now available in the ansible-doc package.


    In Flycheck I’m using Ansible to setup a testing environment on Travis CI or on a local Vagrant virtual machine. I do not particularly like Ansible, and still much prefer Puppet, but it turned out to be twice as fast as Puppet, and much easier to use for occasional contributors.

    One nice feature of Ansible, though, is the ansible-doc command which provides offline documentation for all available Ansible modules. With some lines of Emacs Lisp we can conveniently use this command to view Ansible documentation from within Emacs:

    Read more…

  15. July 2, 2014 Jul 2, 14 Autoloads in Emacs Lisp posted in emacs and autoloads

    On Reddit a user asked how to use autoloads in Emacs Lisp. This post is essentially a summary and extension of my answers in that thread, but since this topic is of interest to almost every Emacs Lisp developer, I thought I’d share them to a wider audience.

    Read more…