Changing Options
The RyuseiCode constructor accepts several options to customize the editor:
new RyuseiCode( { id : 'primary', maxHeight: '40em', } );
The object also let you update options of extensions. The property name is same with the name of an extension in the camelcase.
Here is an example of how to set options of the ActiveLine extension:
new RyuseiCode( { activeLine: { ... } } );
Setting false
to it deactivates the extension:
new RyuseiCode( { activeLine: false } );
Main Options
id
Determines the editor ID. Some IDs for child elements are generated based on it.
If you don't specify it, RyuseiCode automatically assigns a sequential ID.
type: string
default: undefined
language
Specifies a language by the ID or the alias.
Language | ID/Alias |
---|---|
CSS | css |
HTML | html, markup |
JavaScript | javascript, js |
JSON | json |
JSX | jsx, react |
TSX | tsx |
NONE | none |
SCSS | scss |
SVG | svg |
TypeScript | typescript, ts |
Vue | vue |
XML | xml |
new RyuseiCode( { language: 'typescript', // or 'ts' } );
type: string
default: javascript
rootClasses
A class or classes for the root element.
type: string | string[]
default: undefined
viewClasses
A class or classes for the view element.
type: string | string[]
default: undefined
placeholder
A placeholder to display when the editor content is empty.
type: string
default: 'Enter code here…'
width
Fixes the width of the editor. CSS relative units are acceptable.
new RyuseiCode( { width: '50%' } );
Be aware that the width won't be narrower than the minWidth
(the default value is 200px
),
and be wider than the maxWidth
either (the default value is 100%
).
type: number | string
default: undefined
height
Fixes the height of the editor. CSS relative units are acceptable.
new RyuseiCode( { height: '40em' } );
Be aware that the height won't be smaller than the minHeight
(the default value is 16em
),
and be taller than the maxHeight
either (the default value is 40em
).
You may wonder why there are 3 similar height
, minHeight
and maxHeight
options.
One of the big reason is that the height
fixes the editor height, but minHeight
and maxHeight
do not.
If users inserts new lines, the editor height won't be taller than the height
with displaying a scrollbar:
// Try to insert new lines
// Try to insert new lines
Whereas it can be if you set only the minHeight
:
// Try to insert new lines
// Try to insert new lines
Besides, the Resize extension respects all of them.
Here is an example when the height
is 200px
, minHeight
is 100px
and maxHeight
is 300px
.
Drag the bottom edge and try to resize the editor height:
// Try to resize my height
// Try to resize my height
type: number | string
default: undefined
minWidth
Determines the minimum width of the editor. CSS relative units are acceptable.
type: number | string
default: undefined
minHeight
Determines the minimum height of the editor. CSS relative units are acceptable.
type: number | string
default: undefined
maxWidth
Determines the maximum width of the editor. CSS relative units are acceptable.
type: number | string
default: undefined
maxHeight
Determines the maximum height of the editor. CSS relative units are acceptable.
type: number | string
default: undefined
monospaceFont
Changes the monospace font in the CSS format.
new RyuseiCode( { monospaceFont: '"Fira Code", monospace' } );
type: string
default: undefined
fontSize
Changes the font size. CSS relative units are acceptable.
type: number | string
default: undefined
lineHeight
Changes the line height. This must be a number.
new RyuseiCode( { lineHeight: 1.4, // Can't be "1.4em" } );
type: number
default: undefined
indent
Defines the indent character. Set this to \t
for a tab character.
type: string
default: ' '(2 spaces)
tabSize
Defines the tab size if the indent
option is \t
.
This does not work on IE since it does not support the tab-size
CSS property.
type: number
default: 2
tabIndex
Specifies the tabIndex
attribute. In most cases, you don't need to (and should not) change this option.
type: number
default: 0
autoFocus
Determines whether to set focus on the editor after initialization or not.
type: boolean
default: undefined
readOnly
Determines whether to make the editor read-only or not. The Editor instance allows you to dynamically switch the status.
type: boolean
default: undefined
maxInitialLines
The maximum number of lines rendered by html()
.
Be aware that IE crashes when attempting to render around 1000 lines at the same time.
type: number
default: 200
keymap
The map for key bindings (shortcuts). Visit this page for more details.
type: Record<string, KeyMatcher | KeyMatcher[] | null | false>
default: An object with the default map.
icons
The collection of icon settings.
RyuseiCode renders all icons in the SVG format.
This option allows you to change their path, stroke width, and stroke linecap values.
Each value must be a IconSettings tuple as [ string, number?, string ]
corresponding with [ path, stroke, linecap ]
,
and the SVG viewport size must be 24*24
.
Here is a list of icons:
Name | Icon | Type |
---|---|---|
arrowUp | General | |
arrowDown | General | |
close | General | |
matchCase | Search | |
regexp | Search | |
word | Search |
new RyuseiCode( { icons: { close: [ 'm19 18-14-13m0 13 14-13', 3, ], }, } );
type: Record<string, IconSettings>
default: An object with default settings.
i18n
The collection of i18n strings. Visit this page for more details.
type: Record<string, string>
default: An object with default strings.