Add lang/faust module (#1898)
This commit is contained in:
parent
25acbd29d5
commit
3f60e40f40
7 changed files with 98 additions and 0 deletions
|
@ -109,6 +109,7 @@
|
||||||
;;elm ; care for a cup of TEA?
|
;;elm ; care for a cup of TEA?
|
||||||
emacs-lisp ; drown in parentheses
|
emacs-lisp ; drown in parentheses
|
||||||
;;ess ; emacs speaks statistics
|
;;ess ; emacs speaks statistics
|
||||||
|
;;faust ; dsp, but you get to keep your soul
|
||||||
;;fsharp ; ML stands for Microsoft's Language
|
;;fsharp ; ML stands for Microsoft's Language
|
||||||
;;go ; the hipster dialect
|
;;go ; the hipster dialect
|
||||||
;;(haskell +intero) ; a language that's lazier than I am
|
;;(haskell +intero) ; a language that's lazier than I am
|
||||||
|
|
|
@ -118,6 +118,7 @@ Modules that bring support for a language or group of languages to Emacs.
|
||||||
+ emacs-lisp:
|
+ emacs-lisp:
|
||||||
+ erlang:
|
+ erlang:
|
||||||
+ [[file:lang/ess/README.org][ess]]:
|
+ [[file:lang/ess/README.org][ess]]:
|
||||||
|
+ [[file:lang/faust/README.org][faust]]:
|
||||||
+ [[file:lang/go/README.org][go]] =+lsp=:
|
+ [[file:lang/go/README.org][go]] =+lsp=:
|
||||||
+ [[file:lang/haskell/README.org][haskell]] =+intero +dante +lsp=:
|
+ [[file:lang/haskell/README.org][haskell]] =+intero +dante +lsp=:
|
||||||
+ hy:
|
+ hy:
|
||||||
|
|
46
modules/lang/faust/README.org
Normal file
46
modules/lang/faust/README.org
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
#+TITLE: lang/faust
|
||||||
|
#+DATE: July 23, 2019
|
||||||
|
#+SINCE: v2.1.0
|
||||||
|
#+STARTUP: inlineimages
|
||||||
|
|
||||||
|
* Table of Contents :TOC_3:noexport:
|
||||||
|
- [[#description][Description]]
|
||||||
|
- [[#plugins][Plugins]]
|
||||||
|
- [[#features][Features]]
|
||||||
|
|
||||||
|
* Description
|
||||||
|
Add support to Faust language inside emacs.
|
||||||
|
|
||||||
|
+ Faust code syntax hightlighting and indentation
|
||||||
|
+ Project-based (inter-linked Faust files)
|
||||||
|
+ Build/compile with output window
|
||||||
|
+ Graphic diagrams generation and vizualisation in the (default) browser
|
||||||
|
+ Browse generated C++ code inside Emacs
|
||||||
|
+ Inter-linked files/buffers :
|
||||||
|
+ From "component" to Faust file
|
||||||
|
+ From "include" to Faust library file
|
||||||
|
+ From error to file:line number
|
||||||
|
+ From function name to online documentation
|
||||||
|
+ Fully configurable (build type/target/architecture/toolkit, keyboard shortcuts, etc.)
|
||||||
|
+ Automatic keyword completion (if Auto-Complete is installed)
|
||||||
|
+ Automatic objets (functions, operators, etc.) template insertion with default sensible values (if Yasnippet is installed)
|
||||||
|
+ Modeline indicator of the state of the code
|
||||||
|
|
||||||
|
** Plugins
|
||||||
|
+ [[https://bitbucket.org/yphil/faustine][faustine]]
|
||||||
|
|
||||||
|
* Features
|
||||||
|
Keybindings
|
||||||
|
|
||||||
|
| Binding | Description |
|
||||||
|
|-------------------+----------------------|
|
||||||
|
| ~<localleader> b~ | ~build~ |
|
||||||
|
| ~<localleader> c~ | ~syntax check~ |
|
||||||
|
| ~<localleader> d~ | ~diagram~ |
|
||||||
|
| ~<localleader> h~ | ~online dock~ |
|
||||||
|
| ~<localleader> RET~ | ~mdoc~ |
|
||||||
|
| ~<localleader> o~ | ~toggle output buffer~ |
|
||||||
|
| ~<localleader> s~ | ~source code~ |
|
||||||
|
| ~<localleader> r~ | ~run~ |
|
||||||
|
| ~<localleader> S-b~ | ~build all~ |
|
||||||
|
| ~<localleader> S-d~ | ~diagram all~ |
|
12
modules/lang/faust/autoload.el
Normal file
12
modules/lang/faust/autoload.el
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
;;; lang/faust/autoload.el -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun +faust-company-backend (command &optional arg &rest ignored)
|
||||||
|
"`company-mode' completion back-end for `faust-mode'."
|
||||||
|
(interactive (list 'interactive))
|
||||||
|
(cl-case command
|
||||||
|
(interactive (company-begin-backend '+faust-company-backend))
|
||||||
|
(prefix (and (derived-mode-p 'faust-mode)
|
||||||
|
(not (company-in-string-or-comment))
|
||||||
|
(or (company-grab-symbol-cons "\\." 1) 'stop)))
|
||||||
|
(candidates faust-keywords-all)))
|
29
modules/lang/faust/config.el
Normal file
29
modules/lang/faust/config.el
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
;;; lang/faust/config.el -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
|
(use-package! faustine
|
||||||
|
:mode ("\\.dsp\\'" . faustine-mode)
|
||||||
|
:config
|
||||||
|
|
||||||
|
(set-company-backend! '(faust-mode faustine-mode) '+faust-company-backend)
|
||||||
|
|
||||||
|
(defadvice! +faust--suppress-ac-warnings-a (orig-fn &rest args)
|
||||||
|
"Silence obnoxious 'You really should install and use auto-complete' warnings
|
||||||
|
when starting faust-mode *and* faustine-mode. You really should *not* install
|
||||||
|
nor use auto-complete."
|
||||||
|
:around '(faust-mode faustine-mode)
|
||||||
|
(let (ac-modes ac-sources)
|
||||||
|
(apply orig-fn args)))
|
||||||
|
|
||||||
|
(map! :localleader
|
||||||
|
:map faustine-mode-map
|
||||||
|
"b" #'faustine-build
|
||||||
|
"c" #'faustine-syntax-check
|
||||||
|
"d" #'faustine-diagram
|
||||||
|
"h" #'faustine-online-doc
|
||||||
|
"RET" #'faustine-mdoc
|
||||||
|
"o" #'faustine-toggle-output-buffer
|
||||||
|
"s" #'faustine-source-code
|
||||||
|
"r" #'faustine-run
|
||||||
|
"S-b" #'faustine-build-all
|
||||||
|
"S-d" #'faustine-diagram-all
|
||||||
|
))
|
5
modules/lang/faust/doctor.el
Normal file
5
modules/lang/faust/doctor.el
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
;; -*- lexical-binding: t; no-byte-compile: t; -*-
|
||||||
|
;;; lang/faust/doctor.el
|
||||||
|
|
||||||
|
(unless (executable-find "faust")
|
||||||
|
(warn! "Couldn't find the faust compiler. faustine-mode won't work."))
|
4
modules/lang/faust/packages.el
Normal file
4
modules/lang/faust/packages.el
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
;; -*- no-byte-compile: t; -*-
|
||||||
|
;;; lang/faust/packages.el
|
||||||
|
|
||||||
|
(package! faustine)
|
Loading…
Add table
Add a link
Reference in a new issue