11import { onBlur } from "../display/focus.js"
2- import { setGuttersForLineNumbers , updateGutters } from "../display/gutters.js"
3- import { alignHorizontally } from "../display/line_numbers.js"
2+ import { getGutters , updateGutters } from "../display/gutters.js"
43import { loadMode , resetModeState } from "../display/mode_state.js"
54import { initScrollbars , updateScrollbars } from "../display/scrollbars.js"
65import { updateSelection } from "../display/selection.js"
@@ -86,7 +85,7 @@ export function defineOptions(CodeMirror) {
8685
8786 option ( "theme" , "default" , cm => {
8887 themeChanged ( cm )
89- guttersChanged ( cm )
88+ updateGutters ( cm )
9089 } , true )
9190 option ( "keyMap" , "default" , ( cm , val , old ) => {
9291 let next = getKeyMap ( val )
@@ -98,9 +97,9 @@ export function defineOptions(CodeMirror) {
9897 option ( "configureMouse" , null )
9998
10099 option ( "lineWrapping" , false , wrappingChanged , true )
101- option ( "gutters" , [ ] , cm => {
102- setGuttersForLineNumbers ( cm . options )
103- guttersChanged ( cm )
100+ option ( "gutters" , [ ] , ( cm , val ) => {
101+ cm . display . gutterSpecs = getGutters ( val , cm . options . lineNumbers )
102+ updateGutters ( cm )
104103 } , true )
105104 option ( "fixedGutter" , true , ( cm , val ) => {
106105 cm . display . gutters . style . left = val ? compensateForHScroll ( cm . display ) + "px" : "0"
@@ -113,12 +112,12 @@ export function defineOptions(CodeMirror) {
113112 cm . display . scrollbars . setScrollTop ( cm . doc . scrollTop )
114113 cm . display . scrollbars . setScrollLeft ( cm . doc . scrollLeft )
115114 } , true )
116- option ( "lineNumbers" , false , cm => {
117- setGuttersForLineNumbers ( cm . options )
118- guttersChanged ( cm )
115+ option ( "lineNumbers" , false , ( cm , val ) => {
116+ cm . display . gutterSpecs = getGutters ( cm . options . gutters , val )
117+ updateGutters ( cm )
119118 } , true )
120- option ( "firstLineNumber" , 1 , guttersChanged , true )
121- option ( "lineNumberFormatter" , integer => integer , guttersChanged , true )
119+ option ( "firstLineNumber" , 1 , updateGutters , true )
120+ option ( "lineNumberFormatter" , integer => integer , updateGutters , true )
122121 option ( "showCursorWhenSelecting" , false , updateSelection , true )
123122
124123 option ( "resetSelectionOnContextMenu" , true )
@@ -160,12 +159,6 @@ export function defineOptions(CodeMirror) {
160159 option ( "phrases" , null )
161160}
162161
163- function guttersChanged ( cm ) {
164- updateGutters ( cm )
165- regChange ( cm )
166- alignHorizontally ( cm )
167- }
168-
169162function dragDropChanged ( cm , value , old ) {
170163 let wasOn = old && old != Init
171164 if ( ! value != ! wasOn ) {
0 commit comments