Commit graph

96 commits

Author SHA1 Message Date
Mario Lang bb6bce1671 Use cl-lib instead of obsolete cl package
This is actually pretty boring.  It replaces calls to obsolete aliases
with the properly namespaced functions from the cl-lib package.

This raises our minimal Emacs version requirement to 24.3 (2013-03-10).
However, people using earlier versions can install the cl-lib package
from the Emacs package system.

While at it:
* remove function `sclang-document-list' which was really useless.
* fix `sclang-format-pseq' which needed to use `cl-labels'
  instead of `cl-flet' to actually work.
* (cl-reduce (lambda (a b) (or a b)) (mapcar function list))
  is much better written as (and now properly short-circuits):
  (cl-some function list)
* (cl-remove-if 'null list)
  should be written as
  (remq nil list)
2019-12-25 14:14:13 +01:00
Brian Heim b6e5d1bf78
Merge pull request #17 from mlang/sclang-make-options
Fix `sclang-make-options' falsely emitting -d and -l
2019-12-24 16:47:29 -06:00
Mario Lang 59e0d31b0a Fix `sclang-make-options' falsely emitting -d and -l
It turns out `file-directory-p' and `file-exists-p' return t when passed
the empty string.  This is sort of unexpected, and leads to the logic
in `sclang-make-options' choosing to pass -d and -l with
unpredictable values (default-directory) to sclang.
A default of "" (or -1) is pretty unidiomatic for elisp, so we change
the default of user option `sclang-runtime-directory',
`sclang-library-configuration-file' and `sclang-udp-port' to
nil, and adjust `sclang-make-options' accordingly.  While we're here,
we can eliminate the use of `cl-flet'.
Additionally, `sclang-eval-sync' uses `find' which is really an
alias for `cl-find' which and can be replaced with a call to the built-in
function `assoc'.  This is faster, and the last dependency on the
cl package, which we can now remove (obsolete since emacs 27).
2019-12-24 23:18:08 +01:00
Brian Heim 6b63bf1bcf
Merge pull request #15 from mlang/HelpSource
Create a HelpSource directory and document the EmacsBuffer class
2019-12-22 16:35:25 -06:00
Mario Lang 0543729ec5 Fix typo 2019-12-22 23:31:55 +01:00
Brian Heim 92d549770b
Merge pull request #16 from mlang/multibyte
Fix decoding of evaluation results to support multibyte characters
2019-12-22 16:01:50 -06:00
Mario Lang 7285fb3358 Fix decoding of evaluation results to support multibyte characters
Symptom: (sclang-eval-sync "\"ö\"") evaluates to "ö"
After this patch: (sclang-eval-sync "\"ö\"") => "ö"

This was tricky to figure out, so here is a bit of background.
scel uses a so-called command FIFO to send (amongst other things) evaluation
results to Emacs.  This FIFO uses a pascal-string (32bit string length
followed by character data) to send Lisp to Emacs.  The command process
coding system is already set to 'no-conversion on the Emacs side
to avoid crippling the int32 at the beginning of every string.
However, the read-from-string call in sclang-command-process-filter
implicitly converts the unibyte string received from the process to
a multibyte string, without doing proper conversion.
The right function to use here is string-as-multibyte, which does
the correct conversion.
2019-12-17 08:32:05 +01:00
Mario Lang 406cfde4c5 Create a HelpSource directory and document the EmacsBuffer class 2019-12-15 19:51:40 +01:00
Brian Heim da28459931
Merge pull request #14 from mlang/SCDocNode.storeLispOn
Allow serialisation of SCDocNode trees to Emacs Lisp
2019-12-15 10:04:26 -06:00
Mario Lang 6c74020a10 Allow serialisation of SCDocNode trees to Emacs Lisp 2019-12-15 08:02:03 +01:00
Brian Heim 857fcf763c
Merge pull request #13 from mlang/email
Update my email address
2019-12-14 09:50:27 -06:00
Mario Lang 7fbce73e7f Update my email address 2019-12-12 10:37:11 +01:00
Brian Heim d0b42dd183
Merge pull request #11 from larme/fix-readme
update configuration file path in readme for macOS
2019-09-25 22:42:28 -05:00
Zhao Shenyang 223a53c29a update configuration file path in readme for macOS 2019-09-18 12:36:56 +08:00
Brian Heim 7ec76e4c02
Merge pull request #9 from widp/flet-macro-change
change instances of flet to cl-flet as flet is obsolete
2018-08-02 20:46:51 -05:00
widp 95120e310b change instances of flet to cl-flet as flet is obsolete 2018-07-28 20:01:58 +05:30
Brian Heim 0686452b0b
Merge pull request #7 from widp/el-files-fix
El files fix
2018-04-07 20:55:02 -04:00
widp 3ddfd3e677 Revert "Fixes link to "HelpSource" directory"
This reverts commit 5abf055a10.
2018-04-05 17:27:56 +05:30
tejaswidp 5abf055a10 Fixes link to "HelpSource" directory 2018-03-30 21:53:40 +05:30
tejaswidp b12547a152 install *.el files irrespective of byte compilation option 2018-03-30 17:43:21 +05:30
tejaswi d prakash f6c7228f09
Merge pull request #6 from widp/master
link to correct *.sc files in Readme
2018-03-30 08:39:39 +05:30
tejaswidp 6d206e023c link to correct *.sc files in Readme 2018-03-30 07:52:31 +05:30
LFSaw aeea3ad4be Merge pull request #2870 from snappizz/topic/goodbye-old-osc
class lib: deprecate old OSC classes
2017-06-29 10:33:19 +02:00
Nathan Ho e4df2cdff5 scel: remove reference to OSCresponderNode
This commit removes a reference to OSCresponderNode in the Emacs class.

For #2870.
2017-05-07 12:05:28 -07:00
modula t. worm c52e2912b6 populate sclang-class-list 2016-11-21 17:37:37 -06:00
modula t. worm 16835a43e2 Prevent Emacs fontification failure w/ lots of classes - Fixes #248
What I've done to fix this:

- add a sclang-class-list variable in sclang-language.el, which is a
  list of all the classes known to sclang. this is populated when
  sclang starts.
- update sclang-font-lock-class-keyword-matcher in
  sclang-mode.el. since the sclang-class-name-regexp now will match
  all words that start with a capital letter (see next bullet point
  for that change), this function had to be updated to check to make
  sure that the word starting with a capital letter is in the list of
  classes. if it is, then we know it's a class and it gets
  highlighted. if it's not, then it's just something the user typed
  with a capital letter, so we don't highlight it.
- update sclang-update-font-lock in sclang-mode.el. instead of
  generating a huge regexp from a list of all the classes in
  SuperCollider, just run the normal fontification from that
  function. this avoids making the regexp too big and thus prevents
  fontification from failing.
2016-11-21 17:13:01 -06:00
Martin Marier 6d6ec77634 Fix bug #132
Fix #132.  Incorrect regexp caused methods names with a capital letter to be interpreted as a class name.  Adding a start of word \\< seems to fix it.
2016-10-05 03:51:37 -03:00
Chris Sattinger 820c3b3cd4 scel: fix serverRunning, avgCPU, peakCPU etc. (#2036)
bug with scide_scel
2016-05-07 17:12:04 +02:00
simdax a88cc8b318 add "this." for serverRunning, avgCPU, peakCPU etc. 2016-05-07 16:19:27 +02:00
crucialfelix 881b34bf41 use "Walk Like and Egyptian" aka K&R braces for all class definitions
Sublime Text syntax grammar does not do multi-line matching,
so all editors that use this (including Atom and its symbol matching)
cannot detect classes defined as

    MyClass
    {

    }

This also makes all classes in the class lib consistent in style which is nice
for everybody.
2015-11-07 12:50:24 +01:00
Peter Vasil 023b5a41c6 scel: Fix mode-line update
`(force-mode-line-update)`  updates only the mode-line of  the current buffers. Providing a non-nil argument updates the mode-line of all buffers. This is particularly useful when having a split view with the server buffer and another buffer where current buffer is not the server buffer. (probably  a very common use case).
2015-09-30 21:32:16 +02:00
bion 3ca01e04ed Highlight uppercase symbols in emacs 2014-10-15 00:31:48 -07:00
Scott Wilson 6af534a0fb scide + lang: Remove Document redirect
This merges the Document and ScIDEDocument classes. This should improve readability and maintainability, and simplifies the implementation. As part of this:

- some duplicate methods are deprecated
- the previous Document has been copied into the scel folder to avoid breaking EmacsDocument

Signed-off-by: Scott Wilson <i@scottwilson.ca>
2013-11-12 14:37:49 +00:00
Yvan Volochine fe43d2f24a README: remove all language identifiers from code blocks 2013-07-01 17:13:24 +02:00
Yvan Volochine ab9cbc2866 README: use underlines instead of hash-signs for h1 & h2 headers 2013-07-01 17:05:15 +02:00
Yvan Volochine 63ff25df7a README: use plain text for URLs as Github automatically convert them 2013-07-01 15:02:18 +02:00
Yvan Volochine 76c2950609 README: change all README files extenstion to markdown 2013-06-29 19:15:54 +02:00
Yvan Volochine ed4c7348c1 README: adapt all README files to markdown 2013-06-29 19:13:38 +02:00
Jonas Bernoulli 6f808bcece remove bundled elisp library tree-widget.el
This library is part of Emacs.  Bundling it in the same directory as
the sclang*.el libraries will put it on the load-path.  The bundled
version then shadows the newer version which is part of Emacs, which
can cause hard to detect problems.
2013-05-09 17:03:03 +02:00
Dan Stowell ca2a432409 Improve error messages when cmake can't find optional things 2012-09-07 12:12:36 +01:00
Tim Blechmann 494cf1fe11 editors: scel - disabling bytecode compilation is an advanced option
Signed-off-by: Tim Blechmann <tim@klingt.org>
2012-03-07 23:34:01 +01:00
Tim Blechmann f5f09b6090 editors: scel - do not require emacs when omitting bytecode compilation
Signed-off-by: Tim Blechmann <tim@klingt.org>
2012-03-07 23:34:01 +01:00
Tim Blechmann dfb69f398b scel: add option to install without bytecode compilation
Signed-off-by: Tim Blechmann <tim@klingt.org>
2012-03-05 17:43:06 +01:00
Tim Blechmann 67d100d7d7 scel: install files to site-lisp/SuperCollider
adapted patch from debian package

Signed-off-by: Tim Blechmann <tim@klingt.org>
2012-03-05 17:43:06 +01:00
James Harkins 683930cd9b Bonehead: If you plan to escape \, do it FIRST before escaping anything else
This fixes an "Error in command handler" in emacs
2011-12-20 09:34:23 +08:00
James Harkins 486e4709c5 Fix bug with ScelDocument string_ : backslashes needed to be escaped 2011-12-17 09:19:48 +08:00
Tim Blechmann 5b399b4293 editors: avoid IDE-specific overwrites by introducing IDE actions
scel currently uses method overwrites to control the IDE gui. this can be
avoided by using actions, which can be set in order to override the default
behavior

Signed-off-by: Tim Blechmann <tim@klingt.org>
2011-12-09 19:43:37 +01:00
Tim Blechmann 1569625efa editors: scel - move code from el to sc to avoid method overwrite
we can simply call the library shutdown handler from within emacs to avoid
a method overwrite.

Signed-off-by: Tim Blechmann <tim@klingt.org>
2011-12-08 19:46:51 +01:00
Tim Blechmann 08cbc64f3a class library: deprecate UI.registerForShutdown
UI.registerForShutdown has the same semantics as ShutDown.add. we only
need one functionality like this, so this patch deprecates it.

Signed-off-by: Tim Blechmann <tim@klingt.org>
2011-12-07 11:30:07 +01:00
Tim Blechmann 3e5cf00140 scel: avoid temporary file for symbol table
the symbol table can simply be passed via the command fifo, there is no
need for using a temporary file.

Signed-off-by: Tim Blechmann <tim@klingt.org>
2011-10-10 21:00:39 +02:00