**Rationale:** Currently geany functionality for Lisp dialects is limited to syntax highlighting and only covers [Common] Lisp and Clojure (currently not full built-in file type). The following change not only expands functionality to existing Lisps dialects but adds support for two major Lisp dialects, Scheme and Racket.
**Changes:** * Add and integrate universal-ctags parsers for Lisp, Clojure, Scheme and Racket (based on Scheme parser) * Add built-in filetypes for Clojure, Scheme and Racket (following HACKING instructions) * Modify calltip functionality to work with current document file type defined wordchars
**Existing problems:** * Parser capability to identify symbols is limited to functions (Lisp, Clojure, Scheme, Racket), variables (Scheme, Racket) and namespaces (Clojure) * Calltip only works by typing a open paren after function name which is not suitable for Lisp dialects * Racket filetype keywords are not being consistently highlighted * Racket parser is minimal adaptation of Scheme parser You can view, comment on, or merge this pull request online at:
https://github.com/geany/geany/pull/1922
-- Commit Summary --
* Add TagManager parser for Clojure, Lisp and Scheme * Add Racket parser and lisp-based builtin filetypes * Minor fixes relating to the filetypes * Remove reference to scheme tag file * Make use of current editor wordchars for calltip * Add generated keywords to filetype.rkt
-- File Changes --
M ctags/Makefile.am (5) M ctags/main/parsers.h (6) A ctags/parsers/clojure.c (175) A ctags/parsers/lisp.c (134) A ctags/parsers/racket.c (120) A ctags/parsers/scheme.c (122) M data/Makefile.am (5) R data/filedefs/filetypes.clj (20) M data/filedefs/filetypes.lisp (3) A data/filedefs/filetypes.rkt (62) A data/filedefs/filetypes.scheme (60) M data/filetype_extensions.conf (4) M src/editor.c (2) M src/filetypes.c (5) M src/filetypes.h (3) M src/highlighting.c (6) M src/highlightingmappings.h (16) M src/symbols.c (31) M src/tagmanager/tm_parser.c (26) M src/tagmanager/tm_parser.h (4)
-- Patch Links --
https://github.com/geany/geany/pull/1922.patch https://github.com/geany/geany/pull/1922.diff