Skip to content

gareth-rees/pony-mode

This branch is 3 commits ahead of, 105 commits behind davidmiller/pony-mode:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

33b931f · Mar 31, 2012
Sep 30, 2011
Feb 25, 2012
Sep 12, 2011
Mar 30, 2012
Nov 25, 2011
May 28, 2011
Sep 12, 2011
Mar 25, 2012
Oct 19, 2011
Apr 15, 2011
Nov 25, 2011
Mar 25, 2012
Mar 31, 2012
Feb 25, 2012
Feb 25, 2012

Repository files navigation

Pony Mode -a Django mode for emacs

A Django mode for emacs.

Features (Non-exhaustive):

  • Run dev server in an emacs buffer [C-c C-p r] * Checks to see if runserver_plus is available * If not uses in-built runserver
  • Jump to current project in browser (start server if required) [C-c C-p b]
  • Run test case at point in buffer [C-c C-p t]
  • Run tests for current app in buffer [C-c C-p t]
  • Run Syncdb on current project
  • Management commands for current project in interactive buffer
  • South integration - run south convert, schemamigration, migrate
  • Run django shell in buffer [C-c C-p s] * Checks for shell_plus * If not defaults to shell
  • Fabric integration [C-c C-p f]
  • Startapp and dumpdata on current project within emacs
  • Database integration with Emacs sql-mode interactive buffer [C-c C-c d
  • Django Template minor mode with syntax highlighting for django template tags
  • Snippet collection for django
  • generate tags table for project
  • run manage commands in interactive buffer
  • Buildout integration
  • Generate TAGS table for project to enable quick navigation
  • Jump to template at point or from editing view [C-c C-p g t]
  • Virtualenv integration

Fabric Integration

Pony mode will interact with fabric for your current project, building a list of functions to auto-complete, and running commands within a *fabric* buffer.

Buildout Support

Pony mode is aware of buildout, and will use buildout-root/bin/django to run management commands when available, manage.py when not.

The command M-x django-buildout will re-run buildout for your current project

M-x django-buildout-bin will run a script from your buildout's bin directory in an interactive buffer

Tags

Generate a TAGS table for your project with M-x django-tags The exact command used is customisable through django-etags-command in M-x customize-group RET django

Tests

Run tests in in an interactive buffer, allowing you to drop out into ipdb/pdb as required.

Tests will default to --failfast, but you can turn that off with the variable django-test-failfast or set it in M-x customize-group django

in a test run buffer, C-c C-g will jump to the last file and line indicated by the traceback.

Virtualenv

Pony-mode will check to see if your project is inside a virtualenv. If so, it will use the python interpreter from the virtualenv to run all django-related management commands.

Virtualenv support assumes that you initialized the virtualenv with something equivalent to

$ virtualenv my-cool-project [--no-site-packages]

$ cd my-cool-project

$ django-admin.py startproject awzm

$ source ./bin/activate

$ cd awzm

$ emacs settings.py

If your setup is different to this, then the implicit Virtualenv detection may fail.

Fear not though! - you can customise the interpreter used by Pony-mode with a pony-project.

Projects

Pony projects are defined in the .dir-locals.el file at the root of your current project.

The file should look something like this:

;; Pony mode config for the megacorp project ((nil ;; This applies these settings regardless of major mode

(pony-settings . (make-pony-project
:python "/home/david/virtualenvs/megacorp/production/bin/python" :settings "local_settings_file")

)))

Installation

  1. clone this repo somewhere $ git clone https://github.com/davidmiller/pony-mode

  2. Byte-compile the file:

    M-x byte-compile-file
    
  3. Add the path to your load-path:

    (add-to-list 'load-path "path/to/pony-mode")
    
  4. Add to your .emacs:

    (require 'pony-mode)
    
  5. Enjoy

Bugs

Pony-mode is under active development, so please report any bugs on the github issue tracker

Help

Turns out that there is a mailing list at https://groups.google.com/group/pony-mode .

Low frequency, high helpfulness. Feel free to stop by for helps & chats...

Licence

Totally GPL

Roadmap

Check the org-mode file pony.org for current todo/wish list

(If you can stand the org-to-github-markdown transition: https://github.com/davidmiller/pony-mode/blob/master/pony.org )hs

Releases

No releases published

Packages

No packages published

Languages

  • Emacs Lisp 98.6%
  • Ruby 1.1%
  • Other 0.3%