rukano / emacs-faust-mode Goto Github PK
View Code? Open in Web Editor NEWFaust major mode for editing faust code (.dsp files)
Faust major mode for editing faust code (.dsp files)
There has been some confusion over which fork to use, and now a fork by @agraef is in Faust upstream.
It would be best to get some more clarity.
Since @yassinphilip is the most active (if not only) maintainer, maybe it's best if he creates a new copy, puts it in MELPA, and all others delete their fork, or at least point at his version in the readme.
That way the one that is in MELPA will not say it's a fork on the github page, and hopefully, there will be less confusion.
What do you all think?
When I try to use faust mode on emacs 27.1, I get:
Eager macro-expansion failure: (error "Invalid rx ‘any’ range: ^-+")
rx--string-to-intervals: Invalid rx ‘any’ range: ^-+
Alright, I think I'm done, it was really easier/faster than I though it would be : Now, (at least on this machine :)) Faustine depends on Faust-mode, and is now empty of all "syntax" directives, everything is now in Faust-mode.
Now, I'm going to see with the MELPA team that everything goes smoothly. 929 (wow) people have installed Faust-mode from MELPA, nothing bad should happen to them, right? Ideally, they'll just end up with a better mode when updating. For Faustine users, it should be a little more complicated, as Faust-mode should be automatically installed as well when they update, all 10 of them :)
All in all, I'm really happy with this neat, clean, and to-the-point combination : A really comprehensive (and self-contained, a proper mode) Faust-mode, and a powerful IDE-like library of commands that makes good use of it.
What do you say?
(from https://bitbucket.org/yassinphilip/faustine/issues/1/heads-up-related-packages)
Guys, Faustine has been accepted in MELPA! :)
But now I realize that we can do a better job: The idea is to make Faustine depend on faust-mode, so as to clearly separate what does what: faust-mode does the syntax and the indenting, and Faustine contains the helper functions, and you can use the former without the latter, and not the opposite: Installing faustine
would automatically install faust-mode
as a dependancy.
So I would pull all the syntax-related code from Faustine, and put it in faust-mode. Note that my code is, shall I say better, at least more exhaustive, as I pulled all the keywords from the docs, using a specialized macro ; also it handles indentation, while faust-mode doesn't at the moment.
For that I would need write/push access to the repository, will you give it to me?
As previously discussed in #9:
At present faust-regexp-faust-operator
is just a character class. As a result, syntax highlighting of operators is rather sketchy and inconsistent right now, e.g., in <=
only the <
is fontified but not the =
. The arithmetic ops +-*
are in there but not /
and %
. Some BDA ops are completely missing, such as @
(even @rukano's original version already had that).
To fix this, faust-regexp-faust-operator
should be generated from a proper list of all operator symbols, as they appear in the Faust Quick Reference. This isn't hard to do, but the question that needs some thought and discussion is whether we should include each and every operator in there, just the BDA ops, just the multi-character (BDA) ops, or maybe don't highlight the operators at all. I'm actually leaning towards the latter option, but I don't really care much about this as long as it's consistent (which it isn't right now).
Opinions?
Hi, there is a problem with indenting with
blocks when nesting.
The indentation level is not increasing with depth.
For example
process = x with {
x = y with {
y = z with {
z = 1;
};
};
};
Faust programs may nowadays contain extensive documentation sections enclosed between the <mdoc> ... </mdoc>
tags. For instance, see this example from the Faust Quick Reference:
mdoc-example.dsp.zip
We don't currently handle these, which makes sources including such sections look odd in Emacs when editing them using Faust mode. I think that the easiest way to go there is to just treat these sections as comments. As the "comment delimiters" are XML tags in this case, we can't use the syntax table for this. But I've done something similar for the inline code sections in Pure mode. I'll have to look that up and see whether I can adjust it so that it works in this case.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.