Age | Commit message (Collapse) | Author |
|
For no good reason, we were transforming numbers in retorts to symbols
and then failing to recognise things like line or column numbers
there.
The "fix" here only works for the intersection of numbers that are
written in the same way in elisp and scheme; one day we'll find a
situation where this doesn't cut it, but right now we only really use
integers.
|
|
Starting with Emacs 27 cl is fully deprecated, including at
compile-time.
|
|
|
|
It's the convention and by following it we make a big step towards
supporting outline navigation.
The convention doesn't say much about what parts of the code are
supposed to be part of that sections and what parts belong in a
subsequent section. Here we put the `require' forms in this section
and maybe some setup code, that's a popular approach.
In most cases there was "" where we now insert "Code:". They both
serve a similar purpose and we keep the former because some users
depend on that for navigation. We even add this "" in libraries
where it previously was missing.
In some cases the permission statement was followed by a commentary,
which obviously does not belong in the "Code:" section. In such cases
add the conventional "Commentary:" section.
|
|
|
|
|
|
* Narrow font-lock syntax highlighting to only the
active REPL input region.
* Mark REPL output read-only. This can be changed via the
option `geiser-repl-read-only-output-p`.
* Mark REPL output with a user-definable face as
`geiser-font-lock-repl-output`.
Alternatively an option to syntax highlight REPL output
is provided via the option `geiser-repl-highlight-output-p`.
This applies scheme-mode syntax highlighting to any REPL
output. Any additional hooks defined via scheme-mode-hook
are also executed for highlighting this region.
* Remove some unwanted TABs in source files.
|
|
Avoid redefining font-lock-ensure, so that haskell-mode doesn't get mad
at us. Should close github's #164.
|
|
|
|
|
|
|
|
This one should fix github's issue #132. There's still the glitch that
scheme strings are fontified without taking into account extra keywords.
|
|
Addresses github's #158, and its implementation is really easy (kudos to
fice-t, also for telling me about bound-and-true-p).
|
|
We were adding only the scheme-specific ones.
|
|
This fixes a regression introduced by commit
424553e017718c54e219212b27a32b341ec6bd28.
|
|
Should fix #105
|
|
Fixed by using font-lock-ensure instead
|
|
Mainly by reordering definitions so that functions are not used before
defined. There are a couple of places where the compiler and I
disagree (it complains withing eval-after-load), and a valid complain
about functions defined via geiser-popup--define that should be
addressed).
|
|
|
|
API for test suites is defined by SRFI-64.
|
|
Exceptions are defined by R6RS, SRFI-18 and SRFI-34.
|
|
Move general indentation rules to "geiser-syntax".
|
|
Move general RNRS/SRFI keywords from "geiser-chicken" to "geiser-syntax".
|
|
Use this function instead of repeating the same code in each
implementation.
|
|
Apparently, the nesting level returned by emacs's syntax parser can be
negative (presumably when it gets confused), and we were not avoiding
calling backward-up-list when that happened.
Could or could not address issue #41...
|
|
|
|
This allows partially matched `define-syntax-rule' expressions and
avoids the termination of search-based fontification, which affects
other expressions inside the buffer, in the case of a missing
subexpression.
|
|
The name defined It's more like a function in a define than a variable,
since it can take arguments.
|
|
`define-syntax-rule' is similar enough to procedure definitions that
it should be highlight as a slightly different version of one.
The faces were chosen to keep the same scheme used by `define-macro'.
`define-syntax-rule' was removed from Racket's extra keywords as there
is no need to special case it.
|
|
The parser in geiser-syntax is (tail, but elisp doesn't care)
recursive, and we are setting max-lisp-eval-depth to some, ahem,
heuristic value before starting a read. For long strings, such as
that returned by the list of identifiers exported by the racket
module, the heuristic was bad enough to produce a value making Emacs
to blow away.
This is just a palliative. The real solution is turn the recursion in
geiser-syntax--read into an explicit iteration.
|
|
... and used also internally for C-c C-k, although it doesn't yet work
as well as i wanted when it comes to load modules. The reason is
probably in geiser/enter, where we don't record modification times per
submodule but per path, which is not correct in the presence of submodules.
|
|
By default, keywords are now not fontified in Scheme buffers unless
they have the correct (lower) case. This behaviour can be altered by
new, per-implementation customization variables.
Thanks to Diogo F. S. Ramos for pointing this out.
|
|
|
|
Splitting better the specially indented forms between our two
implementations, so that users of a single one don't get weird
indentations for froms without a special meaning in their scheme.
Ideally, we should make these indentation rules buffer-local, so that
when a user is in a, say, Guile buffer, module+ has no special
indentation (as is the case now if that user also has activated
support for Racket).
|
|
|
|
We had only for two of them, and one was wrong!
|
|
|
|
Hat tip Marijn.
|
|
|
|
Let's use the scheme reader instead of half-assed regular expressions
and special-casing.
|
|
|
|
Apparently, quack makes (thing-at-point 'symbol) to return "#" when
point is looking at a hash symbol, causing havoc to geiser. This patch
defends us about this behaviour.
|
|
|
|
Namely, those with non-letters in their name, because we were using
"%S" instead of "%s" to stringify uninterned symbols.
|
|
If quack-mode is active, we leave additional font locking to it.
|
|
... and i haven't yet refactored `geiser-syntax--scan-locals', oh my.
|
|
... using the new non-interning reader. Plus scanning for case-lambda
and syntax-rules. `geiser-syntax--scan-locals' is in danger of
refactoring, specially if we add support for let-values.
|
|
It was relying on symbol equality, and not dealing correctly with
keyword arguments in this new external world. In the process, some
cleanups to the scheme data display code.
|
|
We were still internalizing scheme _keywords_ in the elisp reader.
|
|
We avoid using elisp's read for symbols, reading uninterned ones
instead. And then, we cannot use symbols as keys in responses from
scheme: we're using strings instead.
|