Merge pull request #206 from terror/tab-size

Add tab size configuration
pull/212/head
Michael Truell 2023-03-23 22:52:43 -07:00 committed by GitHub
commit 9115aef5ad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 33 additions and 0 deletions

View File

@ -507,5 +507,16 @@ export function useExtensions({
}
}, [fileIndentUnit, editorRef.current, justCreated])
useEffect(() => {
if (settings.tabSize != undefined) {
editorRef.current.view?.dispatch({
effects: indentCompartment.reconfigure([
indentUnit.of(" ".repeat(Number(settings.tabSize))),
EditorState.tabSize.of(Number(settings.tabSize))
]),
})
}
}, [settings.tabSize, editorRef.current, justCreated])
return globalExtensions
}

View File

@ -115,6 +115,26 @@ export function SettingsPopup() {
/>
</div>
<div className="settings__item">
<div className="settings__item_title">
Tab Size
</div>
<div className="settings__item_description">
Controls the tab size
</div>
<Dropdown
options={['2', '4', '8']}
onChange={(e) => {
dispatch(
changeSettings({
tabSize: e.value,
})
)
}}
value={settings.tabSize}
/>
</div>
<div className="settings__item">
<div className="settings__item_title">
Text Wrapping

View File

@ -300,6 +300,7 @@ export interface Settings {
useFour: string
contextType: string
textWrapping: string
tabSize?: string
}
export interface SettingsState {
@ -400,6 +401,7 @@ export const initialSettingsState = {
useFour: 'disabled',
contextType: 'none',
textWrapping: 'disabled',
tabSize: undefined
},
}