Code Duplication    Length = 13-15 lines in 2 locations

public/lib/CodeMirror/keymap/vim.js 2 locations

@@ 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) {