mirror of
https://github.com/eliasstepanik/strudel.git
synced 2026-01-11 21:58:37 +00:00
add closeBrackets setting
This commit is contained in:
parent
9c66d9f1a7
commit
4e7f5e9cda
@ -27,6 +27,7 @@ import { persistentAtom } from '@nanostores/persistent';
|
|||||||
const extensions = {
|
const extensions = {
|
||||||
isLineWrappingEnabled: (on) => (on ? EditorView.lineWrapping : []),
|
isLineWrappingEnabled: (on) => (on ? EditorView.lineWrapping : []),
|
||||||
isBracketMatchingEnabled: (on) => (on ? bracketMatching({ brackets: '()[]{}<>' }) : []),
|
isBracketMatchingEnabled: (on) => (on ? bracketMatching({ brackets: '()[]{}<>' }) : []),
|
||||||
|
isBracketClosingEnabled: (on) => (on ? closeBrackets() : []),
|
||||||
isLineNumbersDisplayed: (on) => (on ? lineNumbers() : []),
|
isLineNumbersDisplayed: (on) => (on ? lineNumbers() : []),
|
||||||
theme,
|
theme,
|
||||||
isAutoCompletionEnabled,
|
isAutoCompletionEnabled,
|
||||||
@ -41,6 +42,7 @@ const compartments = Object.fromEntries(Object.keys(extensions).map((key) => [ke
|
|||||||
export const defaultSettings = {
|
export const defaultSettings = {
|
||||||
keybindings: 'codemirror',
|
keybindings: 'codemirror',
|
||||||
isBracketMatchingEnabled: false,
|
isBracketMatchingEnabled: false,
|
||||||
|
isBracketClosingEnabled: true,
|
||||||
isLineNumbersDisplayed: true,
|
isLineNumbersDisplayed: true,
|
||||||
isActiveLineHighlighted: false,
|
isActiveLineHighlighted: false,
|
||||||
isAutoCompletionEnabled: false,
|
isAutoCompletionEnabled: false,
|
||||||
@ -76,7 +78,6 @@ export function initEditor({ initialCode = '', onChange, onEvaluate, onStop, roo
|
|||||||
widgetPlugin,
|
widgetPlugin,
|
||||||
// indentOnInput(), // works without. already brought with javascript extension?
|
// indentOnInput(), // works without. already brought with javascript extension?
|
||||||
// bracketMatching(), // does not do anything
|
// bracketMatching(), // does not do anything
|
||||||
closeBrackets(),
|
|
||||||
syntaxHighlighting(defaultHighlightStyle),
|
syntaxHighlighting(defaultHighlightStyle),
|
||||||
history(),
|
history(),
|
||||||
EditorView.updateListener.of((v) => onChange(v)),
|
EditorView.updateListener.of((v) => onChange(v)),
|
||||||
@ -309,6 +310,9 @@ export class StrudelMirror {
|
|||||||
setLineNumbersDisplayed(enabled) {
|
setLineNumbersDisplayed(enabled) {
|
||||||
this.reconfigureExtension('isLineNumbersDisplayed', enabled);
|
this.reconfigureExtension('isLineNumbersDisplayed', enabled);
|
||||||
}
|
}
|
||||||
|
setBracketClosingEnabled(enabled) {
|
||||||
|
this.reconfigureExtension('isBracketClosingEnabled', enabled);
|
||||||
|
}
|
||||||
setTheme(theme) {
|
setTheme(theme) {
|
||||||
this.reconfigureExtension('theme', theme);
|
this.reconfigureExtension('theme', theme);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -81,6 +81,7 @@ export function SettingsTab({ started }) {
|
|||||||
const {
|
const {
|
||||||
theme,
|
theme,
|
||||||
keybindings,
|
keybindings,
|
||||||
|
isBracketClosingEnabled,
|
||||||
isBracketMatchingEnabled,
|
isBracketMatchingEnabled,
|
||||||
isLineNumbersDisplayed,
|
isLineNumbersDisplayed,
|
||||||
isPatternHighlightingEnabled,
|
isPatternHighlightingEnabled,
|
||||||
@ -148,6 +149,11 @@ export function SettingsTab({ started }) {
|
|||||||
onChange={(cbEvent) => settingsMap.setKey('isBracketMatchingEnabled', cbEvent.target.checked)}
|
onChange={(cbEvent) => settingsMap.setKey('isBracketMatchingEnabled', cbEvent.target.checked)}
|
||||||
value={isBracketMatchingEnabled}
|
value={isBracketMatchingEnabled}
|
||||||
/>
|
/>
|
||||||
|
<Checkbox
|
||||||
|
label="Auto close brackets"
|
||||||
|
onChange={(cbEvent) => settingsMap.setKey('isBracketClosingEnabled', cbEvent.target.checked)}
|
||||||
|
value={isBracketClosingEnabled}
|
||||||
|
/>
|
||||||
<Checkbox
|
<Checkbox
|
||||||
label="Display line numbers"
|
label="Display line numbers"
|
||||||
onChange={(cbEvent) => settingsMap.setKey('isLineNumbersDisplayed', cbEvent.target.checked)}
|
onChange={(cbEvent) => settingsMap.setKey('isLineNumbersDisplayed', cbEvent.target.checked)}
|
||||||
|
|||||||
@ -8,6 +8,7 @@ export const defaultSettings = {
|
|||||||
activeFooter: 'intro',
|
activeFooter: 'intro',
|
||||||
keybindings: 'codemirror',
|
keybindings: 'codemirror',
|
||||||
isBracketMatchingEnabled: true,
|
isBracketMatchingEnabled: true,
|
||||||
|
isBracketClosingEnabled: true,
|
||||||
isLineNumbersDisplayed: true,
|
isLineNumbersDisplayed: true,
|
||||||
isActiveLineHighlighted: true,
|
isActiveLineHighlighted: true,
|
||||||
isAutoCompletionEnabled: false,
|
isAutoCompletionEnabled: false,
|
||||||
@ -45,6 +46,7 @@ export function useSettings() {
|
|||||||
...state,
|
...state,
|
||||||
isZen: parseBoolean(state.isZen),
|
isZen: parseBoolean(state.isZen),
|
||||||
isBracketMatchingEnabled: parseBoolean(state.isBracketMatchingEnabled),
|
isBracketMatchingEnabled: parseBoolean(state.isBracketMatchingEnabled),
|
||||||
|
isBracketClosingEnabled: parseBoolean(state.isBracketClosingEnabled),
|
||||||
isLineNumbersDisplayed: parseBoolean(state.isLineNumbersDisplayed),
|
isLineNumbersDisplayed: parseBoolean(state.isLineNumbersDisplayed),
|
||||||
isActiveLineHighlighted: parseBoolean(state.isActiveLineHighlighted),
|
isActiveLineHighlighted: parseBoolean(state.isActiveLineHighlighted),
|
||||||
isAutoCompletionEnabled: parseBoolean(state.isAutoCompletionEnabled),
|
isAutoCompletionEnabled: parseBoolean(state.isAutoCompletionEnabled),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user