summaryrefslogtreecommitdiff
path: root/elisp/geiser-syntax.el
AgeCommit message (Collapse)Author
2020-03-27Mark the beginning of code part of elisp libraries with Code: headingJonas Bernoulli
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.
2019-08-20support gambit's style block comments from chris blommathieu2em
2019-05-15Alias for font-lock-ensure (should fix #274)Jose Antonio Ortega Ruiz
2018-11-28Change behaviour of REPL output and highlightingAaron Marks
* 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.
2016-06-17Be in good terms with haskell-modeJose Antonio Ortega Ruiz
Avoid redefining font-lock-ensure, so that haskell-mode doesn't get mad at us. Should close github's #164.
2016-06-13Fixing again, sorry about thatJose Antonio Ortega Ruiz
2016-06-12Fix for the by now famous syntax keywords patchJose Antonio Ortega Ruiz
2016-06-12Real fix fontification on scheme switchJose Antonio Ortega Ruiz
2016-06-12REPLs not started by the font-lock bufferJose Antonio Ortega Ruiz
This one should fix github's issue #132. There's still the glitch that scheme strings are fontified without taking into account extra keywords.
2016-06-12Removing stale keywords when switching to another schemeJose Antonio Ortega Ruiz
Addresses github's #158, and its implementation is really easy (kudos to fice-t, also for telling me about bound-and-true-p).
2016-06-12Registering *global* font-lock keywords in REPLs at the right timeJose Antonio Ortega Ruiz
We were adding only the scheme-specific ones.
2016-04-23Fix indentation of named 'match-let'Alex Kost
This fixes a regression introduced by commit 424553e017718c54e219212b27a32b341ec6bd28.
2015-10-13Oops: font-lock-ensure is from the futureJose Antonio Ortega Ruiz
Should fix #105
2015-10-12So font-lock-fontify-buffer is for interactive useJose Antonio Ortega Ruiz
Fixed by using font-lock-ensure instead
2015-10-12Keeping the elisp compiler happyJose Antonio Ortega Ruiz
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).
2015-10-03Add missing highlighting for 'syntax-case'Alex Kost
2015-10-03Add highlighting/indentation for testsAlex Kost
API for test suites is defined by SRFI-64.
2015-10-03Add highlighting/indentation for exceptionsAlex Kost
Exceptions are defined by R6RS, SRFI-18 and SRFI-34.
2015-09-27Clean up indentation rulesAlex Kost
Move general indentation rules to "geiser-syntax".
2015-09-27Add general font-lock keywords for all implementationsAlex Kost
Move general RNRS/SRFI keywords from "geiser-chicken" to "geiser-syntax".
2015-09-27Add 'geiser-syntax--simple-keywords'Alex Kost
Use this function instead of repeating the same code in each implementation.
2014-06-05Possible fix for scanning problemJose Antonio Ortega Ruiz
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...
2014-03-07Fontify when too (thanks to Diogo)Jose Antonio Ortega Ruiz
2014-03-07Disable error in `define-syntax-rule' font lockDiogo F. S. Ramos
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.
2014-02-25Using font-lock-function-name-face for define-syntax-ruleJose Antonio Ortega Ruiz
The name defined It's more like a function in a define than a variable, since it can take arguments.
2014-02-25Font lock `define-syntax-rule' like `define' proceduresDiogo F. S. Ramos
`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.
2013-07-29Avoiding a segfault due to out of bounds stack sizeJose Antonio Ortega Ruiz
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.
2013-06-10racket: new ,geiser-load command in REPLJose Antonio Ortega Ruiz
... 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.
2013-03-01Configurable keyword case sensitivityJose Antonio Ortega Ruiz
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.
2012-10-24Completing file names at the REPL, but only in string contextsJose Antonio Ortega Ruiz
2012-10-24Little clean-ups to the indentation rulesJose Antonio Ortega Ruiz
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).
2012-10-11WhitespaceJose Antonio Ortega Ruiz
2012-04-16Racket: indentation for all 'for' formsJose Antonio Ortega Ruiz
We had only for two of them, and one was wrong!
2012-01-31Better indentation for Racket's for/hashJose Antonio Ortega Ruiz
2012-01-17Correct indentation for syntax-id-rulesJose Antonio Ortega Ruiz
Hat tip Marijn.
2011-02-14Guile: indentation for `with-error-to-port`Jose Antonio Ortega Ruiz
2011-01-02More robust symbol reading (instead of specializing for quack)Jose Antonio Ortega Ruiz
Let's use the scheme reader instead of half-assed regular expressions and special-casing.
2011-01-02More quackismsJose Antonio Ortega Ruiz
2011-01-02Fix for quack usersJose Antonio Ortega Ruiz
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.
2010-12-28Finer grained maintenance of autodoc's cacheJose Antonio Ortega Ruiz
2010-12-28Bug fix: autodoc was skipping some identifiersJose Antonio Ortega Ruiz
Namely, those with non-letters in their name, because we were using "%S" instead of "%s" to stringify uninterned symbols.
2010-12-15A quack compatibility bitJose Antonio Ortega Ruiz
If quack-mode is active, we leave additional font locking to it.
2010-11-30Locals scanning: support for let-values and let*-valuesJose Antonio Ortega Ruiz
... and i haven't yet refactored `geiser-syntax--scan-locals', oh my.
2010-11-29Fixes for locals scanningJose Antonio Ortega Ruiz
... 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.
2010-11-28Autodoc's argument display fixedJose Antonio Ortega Ruiz
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.
2010-11-28Avoiding keyword internalisationJose Antonio Ortega Ruiz
We were still internalizing scheme _keywords_ in the elisp reader.
2010-11-27No more interning in the scheme readerJose Antonio Ortega Ruiz
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.
2010-11-26Autodoc not interning symbolsJose Antonio Ortega Ruiz
We avoid calling symbol-at-point, and keep the cached signatures with strings as keys.
2010-11-26NitJose Antonio Ortega Ruiz
2010-11-26Revert "Bug fix: don't intern symbols read by scheme reader"Jose Antonio Ortega Ruiz
This reverts commit 801422d1558f488059ede4f9abab5163ca610900. We cannot blindly substitute make-symbol for intern in the scheme reader, because we rely on symbol equality elsewhere, often. The fix will have to be much more careful.