9 Cooperating with Background Check Syntax

▼ |  | Dr Racket Plugins

1 | Implementing Dr Racket Plugins
2 | Adding Languages to Dr Racket
3 | Creating New Kinds of Dr Racket Frames
4 | Extending the Existing Dr Racket Classes
5 | Expanding the User’s Program Text and Breaking
6 | Editor Modes
7 | Language-Specific Capabilities
8 | Check Syntax
9 | Cooperating with Background Check Syntax
10 | Teaching Languages
11 | Signatures
12 | drracket: get/ extend
13 | drracket: unit
14 | drracket: language
15 | drracket: language-configuration
16 | drracket: debug
17 | drracket: rep
18 | drracket: frame
19 | drracket: help-desk
20 | drracket: eval
21 | drracket: modes
22 | drracket: module-language-tools
23 | drracket: module-language
24 | drracket: tracing
25 | Backwards Compatibility
| Index

top ← prev up next →

### 9`` Cooperating with Background Check Syntax

DrRacket’s continuous, background check syntax runs each time an edit to the definitions text happens. In some cases, that expansion process fails, but there is still a well-formed syntax object that check syntax can use to display information to the user. In order to communicate that syntax object to check syntax, send a log message with the name 'online-check-syntax, e.g.

> (define-logger online-check-syntax)
> (log-message online-check-syntax-logger
> 'info
> "ignored message"
> list-of-syntax-objects)

The fourth argument to log-message should be a list of syntax objects; these are processed as if they were the result of expansion.

Note: the identifiers in these objects should be syntax-original? or else they will be ignored by check syntax.

top ← prev up next →