@@ 423-437 (lines=15) @@ | ||
420 | value = true; |
|
421 | } |
|
422 | } |
|
423 | if (option.callback) { |
|
424 | if (scope !== 'local') { |
|
425 | option.callback(value, undefined); |
|
426 | } |
|
427 | if (scope !== 'global' && cm) { |
|
428 | option.callback(value, cm); |
|
429 | } |
|
430 | } else { |
|
431 | if (scope !== 'local') { |
|
432 | option.value = option.type == 'boolean' ? !!value : value; |
|
433 | } |
|
434 | if (scope !== 'global' && cm) { |
|
435 | cm.state.vim.options[name] = {value: value}; |
|
436 | } |
|
437 | } |
|
438 | } |
|
439 | ||
440 | function getOption(name, cm, cfg) { |
|
@@ 447-459 (lines=13) @@ | ||
444 | if (!option) { |
|
445 | throw Error('Unknown option: ' + name); |
|
446 | } |
|
447 | if (option.callback) { |
|
448 | var local = cm && option.callback(undefined, cm); |
|
449 | if (scope !== 'global' && local !== undefined) { |
|
450 | return local; |
|
451 | } |
|
452 | if (scope !== 'local') { |
|
453 | return option.callback(); |
|
454 | } |
|
455 | return; |
|
456 | } else { |
|
457 | var local = (scope !== 'global') && (cm && cm.state.vim.options[name]); |
|
458 | return (local || (scope !== 'local') && option || {}).value; |
|
459 | } |
|
460 | } |
|
461 | ||
462 | defineOption('filetype', undefined, 'string', ['ft'], function(name, cm) { |