Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/aemoncannon/flyparse-mode

An emacs minor mode for parsing programming languages.
https://github.com/aemoncannon/flyparse-mode

Last synced: 3 months ago
JSON representation

An emacs minor mode for parsing programming languages.

Awesome Lists containing this project

README

        

Flyparse-mode is an emacs minor-mode designed to support the creation of programming-language major-modes. Flyparse uses external parsers to generate s-expression ASTs for language files, as they are being edited. Language modes are then able to query these ASTs using a declarative search syntax.

Features:

* Pluggable architecture. It doesn't matter how you implement the parser, as long as it supports the flyparse protocol.

* Simple and unobtrusive. Can be used to compliment an existing language mode.

* Provides an intuitive query language for accessing the parse-trees. For example, to get a list of all javascript function names in a file, you might say: (flyparse-query-all '("PROGRAM" "FUNCTION_DECLARATION" "FUNCTION_NAME" "IDENT")).

* Supports cross-file queries; it's very simple to implement a 'jump to definition' helper (see the included AS3 helpers).

* Provides helper functions to pretty-print a buffer's syntax tree or to overlay a shaded depth representation over the buffer (see images below).

* Includes parsers for javascript, css and actionscript 3.

* Allows for the creation of robust, readable language helpers.

Flyparse-mode is Copyright (c) 2007 Aemon Cannon, aemoncannon -at- gmail -dot- com

Inspired by Pavel Kobyakov's flymake-mode

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see .

See comments in flyparse-mode.el for installation and usage instructions.