▼ |  | 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

On this page:

drracket: language-configuration: get-languages
drracket: language-configuration: add-language
drracket: language-configuration: get-settings-preferences-symbol
drracket: language-configuration: language-settings
drracket: language-configuration: struct: language-settings
drracket: language-configuration: make-language-settings
drracket: language-configuration: language-dialog
drracket: language-configuration: fill-language-dialog

top ← prev up next →

### 15`` drracket:language-configuration

> procedure (drracket:language-configuration:get-languages)
> → (listof (is-a?/c drracket:language:language<%>))

This can only be called after all of the tools initialization phases have completed.

Returns the list of all of the languages installed in DrRacket.

> > procedure
> > (drracket:language-configuration:add-language |
> > |  | language |
> > | [ | #:allow-executable-creation? allow-executable-creation?]) |
> → void?
> | language |  | : |  |
> (and/c (is-a?/c drracket:language:language<%>)
> drracket:language:object/c)
> allow-executable-creation? : boolean? = #f

This function can only be called in phase 2 (see Implementing DrRacket Plugins for details).

Adds language to the languages offered by DrRacket.

If allow-executable-creation? is #f, then choosing the Create Executable... menu item results in a dialog box saying that executable creation is disabled. If it is #t, then the create-executable is called when that menu item is selected (after checking to make sure the file is saved).

> procedure (drracket:language-configuration:get-settings-preferences-symbol)
> → symbol?

Returns the symbol that is used to store the user’s language settings. Use as an argument to either preferences:get or preferences:set.

> > struct
> > (struct |  | drracket:language-configuration:language-settings
> > |  | (language
> > |  | settings)
> #:extra-constructor-name
> make-drracket:language-configuration:language-settings)
> | language |  | : |  |
> (or/c (is-a?/c drracket:language:language<%>)
> drracket:language:object/c)
> settings : any/c

This struct pairs together a language and some specific settings for the language.

The settings is a language-specific record that holds a value describing a parameterization of the language.

> value drracket:language-configuration:struct:language-settings
> : struct-type?

An alias for struct:drracket:language-configuration:language-settings.

> value drracket:language-configuration:make-language-settings
> : procedure?

An alias for make-drracket:language-configuration:language-settings.

> > procedure
> > (drracket:language-configuration:language-dialog |
> > |  | show-welcome? |
> > |  | language-settings-to-show |
> > | [ | parent]) |
> → (or/c false/c drracket:language-configuration:language-settings?)
> show-welcome? : boolean?
> language-settings-to-show : drracket:language-configuration:language-settings?
> parent : (or/c false/c (is-a?/c top-level-window<%>)) = #t

Opens the language configuration dialog. See also drracket:language-configuration:fill-language-dialog.

The show-welcome? argument determines if if a “Welcome to DrRacket” message and some natural language buttons are shown.

The language-settings-to-show argument must be some default language settings that the dialog is initialized to. If unsure of a default, the currently set language in the user’s preferences can be obtained via:

> (preferences:get
> (drracket:language-configuration:get-settings-preferences-symbol))

The parent argument is used as the parent to the dialog.

The result if #f when the user cancells the dialog, and the selected language if they hit ok.

> > procedure
> > (drracket:language-configuration:fill-language-dialog |
> > |  | panel |
> > |  | button-panel |
> > |  | language-setting |
> > | [ | re-center |
> > |  | ok-handler]) |
> | → |  |
> (-> (is-a?/c drracket:language:language<%>))
> (-> any/c)
> (-> any/c (is-a?/c mouse-event%) any)
> panel : (is-a?/c vertical-panel%)
> button-panel : (is-a?/c area-container<%>)
> language-setting : drracket:language-configuration:language-settings?
> re-center : (or/c false/c (is-a?/c top-level-window<%>)) = #f
> ok-handler : (-> symbol? void?) = void

This procedure accepts two parent panels and fills them with the contents of the language dialog. It is used to include language configuration controls in some larger context in another dialog.

The panel argument is the main panel where the language controls will be placed. The function adds buttons to the button-panel to revert a language to its default settings and to show the details of a language.

The language-setting is the default language to show in the dialog.

The re-center argument is used when the Show Details button is clicked. If that argument is a top-level-window<%>, the Show Details callback will recenter the window each time it is clicked. Otherwise, the argument is not used.

ok-handler is a function that is in charge of interfacing the OK button. It should accept a symbol message: 'enable and 'disable to toggle the button, and 'execute to run the desired operation. (The language selection dialog also uses an internal 'enable-sync message.)

The first two results of the function return a language object and a settings for that language, as chosen by the user using the dialog. The final function should be called when keystrokes are typed in the enclosing frame. It is used to implement the shortcuts that choose the two radio buttons in the language dialog.

top ← prev up next →