git wazzup

Gepubliceerd op: 21.VII.2009 10:03 CEST
Categorieën: emacs, git, ruby
Reacties: 1 stuk

Het maken van nieuwe takken (branches) heb ik sinds ik git gebruik zo goed als onder een sneltoets zitten. Het is heerlijk om veilig op een tak te zitten knutselen zonder dat je het risico loopt de hele boom om te zagen.

Maar met zoveel takken is het gemakkelijk het overzicht te verliezen. Ik zat dan ook vaak met allerlei git GUI’s te kijken waar al m’n spik splinter nieuwe uitbreidingen uithangen. Tot ik de wazzup functie van Magit tegen kwam, die doet precies wat ik wil: laten zien welke commits uit welke branches er niet in de huidige branch zitten.

Ik zit echter zo vastgeroest aan git.el dat ik wazzup in een klein Ruby scriptje heb gevat:

#!/usr/bin/env ruby

branches = `git branch`.split("\n")
current = branches.grep(/^\*/).first[/[^ *]+/]
branches = branches.map{|v| v[/[^ *]+/]}

(branches - [current]).each do |branch|
  unless (cherries = `git cherry -v #{current} #{branch}`).empty?
    puts "#{branch}\n#{cherries}\n"
  end
end

Output ziet er bijvoorbeeld als volgt uit:

automated-tasks
+ 6ff08f983e4fefec813fb1b0c3fa444abf79d838 added task model
+ 174f42694ac862e37c3b04c03059b7f0c7814239 only allow admin to create/edit task
+ 8a6d5bfa83d8781551e3295a8461009c84e7829a task syntax checking validation
+ 748f08bee98f8902f7948964b833ca08404ce098 drop dead code
+ b84a5382ca0541f712b21dec3215a61f0d29a356 added automation task

sync-service
+ 410ef348e381950ad3bd0c481f9b4e5c09810056 added controller and routes
+ 6804abaf643ec6d2cba54629b5980102776a6d0d enforce POST method on update method

Oh! Cool! Die commits wil ik ook! :)

Android micro minor mode voor Emacs

Gepubliceerd op: 21.II.2009 03:29 CET
Categorieën: android, emacs

Gisteren heb ik wat Emacs Lisp expressies aan elkaar geregen tot een minor-mode voor Android applicatie ontwikkeling op Emacs. Deze zeer minimale minor-mode code is beschikbaar via github en is, zoals het hoort bij software, een “work in progress”.

Installatie:


$ cd ~/.emacs.d
$ git clone git://github.com/remvee/android-mode.git

Toevoegen aan ~/.emacs:


(add-to-list 'load-path "~/.emacs.d/android-mode")
(require 'android-mode)

Configureren met: M-x customize-group<RET>android-mode.

Android mode wordt automatisch ingeschakeld als je een bestand of directory opent in een directory met een AndroidManifest.xml bestand. Op dit moment biedt android-mode de volgende bindings:

C-c C-c e
start Emulator op
C-c C-c d
start DDMS op
C-c C-c l
wisselt naar ADB logcat buffer
C-c C-c c
draai ant compile in hoofd directory van applicatie
C-c C-c i
ant install
C-c C-c r
ant reinstall
C-c C-c u
ant uninstall

Emacs setup voor Ruby en Rails

Gepubliceerd op: 24.XI.2008 23:26 CET
Categorieën: emacs, rails

Gisteren in de kroeg heb ik Sam z’n interesse in Emacs weer wat aangewakkerd. Hij is een van de vele die vanuit het TextMate kamp opzoek zijn naar een krachtigere ontwikkelomgeving. Ik zelf ben een paar maanden geleden van TextMate, via Vim, bij Emacs beland. Het is even wennen en het kost wat tijd om je nieuwe omgeving naar je hand te zetten, maar eenmaal ingericht wil je niet anders meer, ik in ieder geval niet.

Voor Ruby en Rails ontwikkeling heb ik de volgende modules geïnstalleerd:

  • ruby-mode, actief onderhouden door het Ruby core team.
  • emacs-rails, deze “minor-mode” heeft goede navigatie features, maakt het gemakkelijk je tests te draaien, de console op te starten, server etc.
  • iswitch-menu, een goed alternatief voor het popup of tekst menu dat emacs-rails aanbiedt voor navigatie. Een aanrader!
  • rhtml-mode erg goed voor het bewerken van HTML-ERB templates.
  • yaml-mode prima voor het schrijven van YAML files.
  • git, de standaard ondersteuning welke meegeleverd wordt met git zelf.
  • js2-mode, hiermee heb ik een haat-liefde verhouding.
  • haml-mode lijkt goed te werken maar heb ik nog niet veel gebruikt.

De beste bron voor meer informatie over Emacs en bijbehoren, buiten de bijgesloten documentatie natuurlijk, is EmacsWiki. Snuffelen in de configuratie van anderen kan ook; op github zijn een paar dot-emacs repositories te vinden waar je van af kunt kijken.

Dus stroop je mouwen op en plak eigen omgeving in elkaar met een paar druppeltjes Lisp!

Mac vriendelijke keybindings voor Emacs 22 Carbon

Gepubliceerd op: 11.X.2008 09:02 CEST
Categorieën: emacs, osx

Na begin van het jaar van Textmate weer terug te zijn verhuist naar Vim, ben ik sinds een paar maanden weer helemaal in Emacs gedoken voor al mijn Ruby, Rails, JavaScript, CSS, HTML, Common Lisp, Twitter, Latex en Spreadsheet werk. M’n EEE heeft veel invloed gehad op deze stappen en nu is ook m’n MacBook tot gastheer voor Emacs gemaakt.

Emacs is alles en meer. De langer je ermee werkt, de onhandiger en knulliger de ander applicaties op je computer lijken. Daarnaast begin je als gebruiker steeds minder te begrijpen van de editor war want Emacs is toch helemaal geen editor?!

Maar goed, deze afkeer tegen alles buiten Emacs heeft ook z’n nadelen; uitstapjes van Emacs naar bijvoorbeeld een browser kunnen door sneltoets incompatibiliteit pijnlijk aflopen. De versie die ik heb geïnstalleerd, is de “carbon” variant van MacPorts, een Emacs versie 22 welke netjes geïntegreerd is met OSX. Er is echter een klein detail dat heel vervelend kan uitpakken; de Command-toets (appeltje) is gedefinieerd als de Meta-toets.

In eerste instantie vond ik dat verschrikkelijk handig, m’n vingers kunnen deze toets namelijk gemakkelijk vinden en het is daarom heel natuurlijk om de veel gebruikte Meta-x combinatie te maken. Alleen is de standaard copieëren combinatie van Emacs Meta-w..

Lees verder →