ocadotechnology/rapid-router

View on GitHub
game/static/game/js/skulpt/codemirror.js

Summary

Maintainability
F
1 mo
Test Coverage

File codemirror.js has 6179 lines of code (exceeds 250 allowed). Consider refactoring.
Open

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: http://codemirror.net/LICENSE

// This is CodeMirror (http://codemirror.net), a code editor
// implemented in JavaScript on top of the browser's DOM.
Severity: Major
Found in game/static/game/js/skulpt/codemirror.js - About 2 wks to fix

    Function leftButtonSelect has 121 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

        function leftButtonSelect(cm, e, start, type, addNew) {
            var display = cm.display, doc = cm.doc;
            e_preventDefault(e);
    
            var ourRange, ourIndex, startSel = doc.sel;
    Severity: Major
    Found in game/static/game/js/skulpt/codemirror.js - About 4 hrs to fix

      Function registerEventHandlers has 105 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

          function registerEventHandlers(cm) {
              var d = cm.display;
              on(d.scroller, "mousedown", operation(cm, onMouseDown));
              // Older IE's will not fire a second mousedown for a double click
              if (ie && ie_version < 11)
      Severity: Major
      Found in game/static/game/js/skulpt/codemirror.js - About 4 hrs to fix

        Function bidiOrdering has 98 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

            var bidiOrdering = (function() {
                // Character types for codepoints 0 to 0xff
                var lowTypes = "bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN";
                // Character types for codepoints 0x600 to 0x6ff
                var arabicTypes = "rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm";
        Severity: Major
        Found in game/static/game/js/skulpt/codemirror.js - About 3 hrs to fix

          Function measureCharInner has 81 lines of code (exceeds 25 allowed). Consider refactoring.
          Open

              function measureCharInner(cm, prepared, ch, bias) {
                  var map = prepared.map;
          
                  var node, start, end, collapse;
                  // First, search the line map for the text node corresponding to,
          Severity: Major
          Found in game/static/game/js/skulpt/codemirror.js - About 3 hrs to fix

            Function readInput has 66 lines of code (exceeds 25 allowed). Consider refactoring.
            Open

                function readInput(cm) {
                    var input = cm.display.input, prevInput = cm.display.prevInput, doc = cm.doc;
                    // Since this is called a *lot*, try to bail out as cheaply as
                    // possible when it is clear that nothing happened. hasSelection
                    // will be the case when there is a lot of text in the textarea,
            Severity: Major
            Found in game/static/game/js/skulpt/codemirror.js - About 2 hrs to fix

              Function drawSelectionRange has 65 lines of code (exceeds 25 allowed). Consider refactoring.
              Open

                  function drawSelectionRange(cm, range, output) {
                      var display = cm.display, doc = cm.doc;
                      var fragment = document.createDocumentFragment();
                      var padding = paddingH(cm.display), leftSide = padding.left, rightSide = display.lineSpace.offsetWidth - padding.right;
              
              
              Severity: Major
              Found in game/static/game/js/skulpt/codemirror.js - About 2 hrs to fix

                Function onContextMenu has 57 lines of code (exceeds 25 allowed). Consider refactoring.
                Open

                    function onContextMenu(cm, e) {
                        if (signalDOMEvent(cm, e, "contextmenu")) return;
                        var display = cm.display;
                        if (eventInWidget(display, e) || contextMenuInGutter(cm, e)) return;
                
                
                Severity: Major
                Found in game/static/game/js/skulpt/codemirror.js - About 2 hrs to fix

                  Function regChange has 56 lines of code (exceeds 25 allowed). Consider refactoring.
                  Open

                      function regChange(cm, from, to, lendiff) {
                          if (from == null) from = cm.doc.first;
                          if (to == null) to = cm.doc.first + cm.doc.size;
                          if (!lendiff) lendiff = 0;
                  
                  
                  Severity: Major
                  Found in game/static/game/js/skulpt/codemirror.js - About 2 hrs to fix

                    Function insertLineContent has 54 lines of code (exceeds 25 allowed). Consider refactoring.
                    Open

                        function insertLineContent(line, builder, styles) {
                            var spans = line.markedSpans, allText = line.text, at = 0;
                            if (!spans) {
                                for (var i = 1; i < styles.length; i+=2)
                                    builder.addToken(builder, allText.slice(at, at = styles[i]), interpretTokenStyle(styles[i+1], builder.cm.options));
                    Severity: Major
                    Found in game/static/game/js/skulpt/codemirror.js - About 2 hrs to fix

                      Function Display has 53 lines of code (exceeds 25 allowed). Consider refactoring.
                      Open

                          function Display(place, doc) {
                              var d = this;
                      
                              // The semihidden textarea that is focused when the editor is
                              // focused, and receives input.
                      Severity: Major
                      Found in game/static/game/js/skulpt/codemirror.js - About 2 hrs to fix

                        Function markText has 53 lines of code (exceeds 25 allowed). Consider refactoring.
                        Open

                            function markText(doc, from, to, options, type) {
                                // Shared markers (across linked documents) are handled separately
                                // (markTextShared will call out to this again, once per
                                // document).
                                if (options && options.shared) return markTextShared(doc, from, to, options, type);
                        Severity: Major
                        Found in game/static/game/js/skulpt/codemirror.js - About 2 hrs to fix

                          Function onScrollWheel has 51 lines of code (exceeds 25 allowed). Consider refactoring.
                          Open

                              function onScrollWheel(cm, e) {
                                  var dx = e.wheelDeltaX, dy = e.wheelDeltaY;
                                  if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) dx = e.detail;
                                  if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) dy = e.detail;
                                  else if (dy == null) dy = e.wheelDelta;
                          Severity: Major
                          Found in game/static/game/js/skulpt/codemirror.js - About 2 hrs to fix

                            Function updateScrollbars has 48 lines of code (exceeds 25 allowed). Consider refactoring.
                            Open

                                function updateScrollbars(cm, measure) {
                                    if (!measure) measure = measureForScrollbars(cm);
                                    var d = cm.display, sWidth = scrollbarWidth(d.measure);
                                    var scrollHeight = measure.docHeight + scrollerCutOff;
                                    var needsH = measure.scrollWidth > measure.clientWidth;
                            Severity: Minor
                            Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                              Function indentLine has 47 lines of code (exceeds 25 allowed). Consider refactoring.
                              Open

                                  function indentLine(cm, n, how, aggressive) {
                                      var doc = cm.doc, state;
                                      if (how == null) how = "add";
                                      if (how == "smart") {
                                          // Fall back to "prev" when the mode doesn't have an indentation
                              Severity: Minor
                              Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                Function buildToken has 47 lines of code (exceeds 25 allowed). Consider refactoring.
                                Open

                                    function buildToken(builder, text, style, startStyle, endStyle, title) {
                                        if (!text) return;
                                        var special = builder.cm.options.specialChars, mustWrap = false;
                                        if (!special.test(text)) {
                                            builder.col += text.length;
                                Severity: Minor
                                Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                  Function makeChangeFromHistory has 47 lines of code (exceeds 25 allowed). Consider refactoring.
                                  Open

                                      function makeChangeFromHistory(doc, type, allowSelectionOnly) {
                                          if (doc.cm && doc.cm.state.suppressEdits) return;
                                  
                                          var hist = doc.history, event, selAfter = doc.sel;
                                          var source = type == "undo" ? hist.done : hist.undone, dest = type == "undo" ? hist.undone : hist.done;
                                  Severity: Minor
                                  Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                    Function stretchSpansOverChange has 47 lines of code (exceeds 25 allowed). Consider refactoring.
                                    Open

                                        function stretchSpansOverChange(doc, change) {
                                            var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans;
                                            var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans;
                                            if (!oldFirst && !oldLast) return null;
                                    
                                    
                                    Severity: Minor
                                    Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                      Function updateDisplayIfNeeded has 45 lines of code (exceeds 25 allowed). Consider refactoring.
                                      Open

                                          function updateDisplayIfNeeded(cm, update) {
                                              var display = cm.display, doc = cm.doc;
                                              if (update.editorIsHidden) {
                                                  resetView(cm);
                                                  return false;
                                      Severity: Minor
                                      Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                        Function makeChangeSingleDocInEditor has 45 lines of code (exceeds 25 allowed). Consider refactoring.
                                        Open

                                            function makeChangeSingleDocInEditor(cm, change, spans) {
                                                var doc = cm.doc, display = cm.display, from = change.from, to = change.to;
                                        
                                                var recomputeMaxLength = false, checkWidthStart = from.line;
                                                if (!cm.options.lineWrapping) {
                                        Severity: Minor
                                        Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                          Function skipAtomic has 44 lines of code (exceeds 25 allowed). Consider refactoring.
                                          Open

                                              function skipAtomic(doc, pos, bias, mayClear) {
                                                  var flipped = false, curPos = pos;
                                                  var dir = bias || 1;
                                                  doc.cantEdit = false;
                                                  search: for (;;) {
                                          Severity: Minor
                                          Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                            Function findPosH has 43 lines of code (exceeds 25 allowed). Consider refactoring.
                                            Open

                                                function findPosH(doc, pos, dir, unit, visually) {
                                                    var line = pos.line, ch = pos.ch, origDir = dir;
                                                    var lineObj = getLine(doc, line);
                                                    var possible = true;
                                                    function findNextLine() {
                                            Severity: Minor
                                            Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                              Function fromTextArea has 43 lines of code (exceeds 25 allowed). Consider refactoring.
                                              Open

                                                  CodeMirror.fromTextArea = function(textarea, options) {
                                                      if (!options) options = {};
                                                      options.value = textarea.value;
                                                      if (!options.tabindex && textarea.tabindex)
                                                          options.tabindex = textarea.tabindex;
                                              Severity: Minor
                                              Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                                Function onDrop has 43 lines of code (exceeds 25 allowed). Consider refactoring.
                                                Open

                                                    function onDrop(e) {
                                                        var cm = this;
                                                        if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e))
                                                            return;
                                                        e_preventDefault(e);
                                                Severity: Minor
                                                Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                                  Consider simplifying this complex logical expression.
                                                  Open

                                                                      if (!(lineNo == from.line && from.ch > span.to ||
                                                                          span.from == null && lineNo != from.line||
                                                                          lineNo == to.line && span.from > to.ch) &&
                                                                          (!filter || filter(span.marker)))
                                                                          found.push(span.marker.parent || span.marker);
                                                  Severity: Critical
                                                  Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                                    Function CodeMirror has 40 lines of code (exceeds 25 allowed). Consider refactoring.
                                                    Open

                                                        function CodeMirror(place, options) {
                                                            if (!(this instanceof CodeMirror)) return new CodeMirror(place, options);
                                                    
                                                            this.options = options = options || {};
                                                            // Determine effective options based on given values and defaults.
                                                    Severity: Minor
                                                    Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                                      Function extendTo has 39 lines of code (exceeds 25 allowed). Consider refactoring.
                                                      Open

                                                              function extendTo(pos) {
                                                                  if (cmp(lastPos, pos) == 0) return;
                                                                  lastPos = pos;
                                                      
                                                                  if (type == "rect") {
                                                      Severity: Minor
                                                      Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                                        Function clear has 38 lines of code (exceeds 25 allowed). Consider refactoring.
                                                        Open

                                                            TextMarker.prototype.clear = function() {
                                                                if (this.explicitlyCleared) return;
                                                                var cm = this.doc.cm, withOp = cm && !cm.curOp;
                                                                if (withOp) startOperation(cm);
                                                                if (hasHandler(this, "clear")) {
                                                        Severity: Minor
                                                        Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                                          Function endOperation_finish has 37 lines of code (exceeds 25 allowed). Consider refactoring.
                                                          Open

                                                              function endOperation_finish(op) {
                                                                  var cm = op.cm, display = cm.display, doc = cm.doc;
                                                          
                                                                  if (op.adjustWidthTo != null && Math.abs(op.barMeasure.scrollWidth - cm.display.scroller.scrollWidth) > 1)
                                                                      updateScrollbars(cm);
                                                          Severity: Minor
                                                          Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                                            Function updateDoc has 36 lines of code (exceeds 25 allowed). Consider refactoring.
                                                            Open

                                                                function updateDoc(doc, change, markedSpans, estimateHeight) {
                                                                    function spansFor(n) {return markedSpans ? markedSpans[n] : null;}
                                                                    function update(line, text, spans) {
                                                                        updateLine(line, text, spans, estimateHeight);
                                                                        signalLater(line, "change", line, change);
                                                            Severity: Minor
                                                            Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                                              Function patchDisplay has 34 lines of code (exceeds 25 allowed). Consider refactoring.
                                                              Open

                                                                  function patchDisplay(cm, updateNumbersFrom, dims) {
                                                                      var display = cm.display, lineNumbers = cm.options.lineNumbers;
                                                                      var container = display.lineDiv, cur = container.firstChild;
                                                              
                                                                      function rm(node) {
                                                              Severity: Minor
                                                              Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                                                Consider simplifying this complex logical expression.
                                                                Open

                                                                            if (doc.frontier >= cm.display.viewFrom) { // Visible
                                                                                var oldStyles = line.styles;
                                                                                var highlighted = highlightLine(cm, line, state, true);
                                                                                line.styles = highlighted.styles;
                                                                                var oldCls = line.styleClasses, newCls = highlighted.classes;
                                                                Severity: Critical
                                                                Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                                                  Consider simplifying this complex logical expression.
                                                                  Open

                                                                              if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to &&
                                                                                  (sp.to == null || sp.to != span.from) &&
                                                                                  (sp.marker.inclusiveLeft || span.marker.inclusiveRight) &&
                                                                                  lineIsHiddenInner(doc, line, sp)) return true;
                                                                  Severity: Critical
                                                                  Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                                                    Consider simplifying this complex logical expression.
                                                                    Open

                                                                            if ((hist.lastOp == opId ||
                                                                                hist.lastOrigin == change.origin && change.origin &&
                                                                                ((change.origin.charAt(0) == "+" && doc.cm && hist.lastModTime > time - doc.cm.options.historyEventDelay) ||
                                                                                    change.origin.charAt(0) == "*")) &&
                                                                                (cur = lastChangeEvent(hist, hist.lastOp == opId))) {
                                                                    Severity: Critical
                                                                    Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                                                      Consider simplifying this complex logical expression.
                                                                      Open

                                                                                  if (fromCmp <= 0 && (cmp(found.to, from) > 0 || (sp.marker.inclusiveRight && marker.inclusiveLeft)) ||
                                                                                      fromCmp >= 0 && (cmp(found.from, to) < 0 || (sp.marker.inclusiveLeft && marker.inclusiveRight)))
                                                                                      return true;
                                                                      Severity: Critical
                                                                      Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                                                        Function highlightWorker has 33 lines of code (exceeds 25 allowed). Consider refactoring.
                                                                        Open

                                                                            function highlightWorker(cm) {
                                                                                var doc = cm.doc;
                                                                                if (doc.frontier < doc.first) doc.frontier = doc.first;
                                                                                if (doc.frontier >= cm.display.viewTo) return;
                                                                                var end = +new Date + cm.options.workTime;
                                                                        Severity: Minor
                                                                        Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                                                          Function coordsCharInner has 33 lines of code (exceeds 25 allowed). Consider refactoring.
                                                                          Open

                                                                              function coordsCharInner(cm, lineObj, lineNo, x, y) {
                                                                                  var innerOff = y - heightAtLine(lineObj);
                                                                                  var wrongLine = false, adjust = 2 * cm.display.wrapper.clientWidth;
                                                                                  var preparedMeasure = prepareMeasureForLine(cm, lineObj);
                                                                          
                                                                          
                                                                          Severity: Minor
                                                                          Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                                                            Function buildLineContent has 33 lines of code (exceeds 25 allowed). Consider refactoring.
                                                                            Open

                                                                                function buildLineContent(cm, lineView) {
                                                                                    // The padding-right forces the element to have a 'border', which
                                                                                    // is needed on Webkit to be able to get line-level bounding
                                                                                    // rectangles for it (in measureChar).
                                                                                    var content = elt("span", null, null, webkit ? "padding-right: .1px" : null);
                                                                            Severity: Minor
                                                                            Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                                                              Function drawForLine has 32 lines of code (exceeds 25 allowed). Consider refactoring.
                                                                              Open

                                                                                      function drawForLine(line, fromArg, toArg) {
                                                                                          var lineObj = getLine(doc, line);
                                                                                          var lineLen = lineObj.text.length;
                                                                                          var start, end;
                                                                                          function coords(ch, bias) {
                                                                              Severity: Minor
                                                                              Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                                                                Function addChangeToHistory has 32 lines of code (exceeds 25 allowed). Consider refactoring.
                                                                                Open

                                                                                    function addChangeToHistory(doc, change, selAfter, opId) {
                                                                                        var hist = doc.history;
                                                                                        hist.undone.length = 0;
                                                                                        var time = +new Date, cur;
                                                                                
                                                                                
                                                                                Severity: Minor
                                                                                Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                                                                  Function onMouseDown has 30 lines of code (exceeds 25 allowed). Consider refactoring.
                                                                                  Open

                                                                                      function onMouseDown(e) {
                                                                                          if (signalDOMEvent(this, e)) return;
                                                                                          var cm = this, display = cm.display;
                                                                                          display.shift = e.shiftKey;
                                                                                  
                                                                                  
                                                                                  Severity: Minor
                                                                                  Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                                                                    Function addWidget has 29 lines of code (exceeds 25 allowed). Consider refactoring.
                                                                                    Open

                                                                                            addWidget: function(pos, node, scroll, vert, horiz) {
                                                                                                var display = this.display;
                                                                                                pos = cursorCoords(this, clipPos(this.doc, pos));
                                                                                                var top = pos.bottom, left = pos.left;
                                                                                                node.style.position = "absolute";
                                                                                    Severity: Minor
                                                                                    Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                                                                      Function runMode has 29 lines of code (exceeds 25 allowed). Consider refactoring.
                                                                                      Open

                                                                                          function runMode(cm, text, mode, state, f, lineClasses, forceToEnd) {
                                                                                              var flattenSpans = mode.flattenSpans;
                                                                                              if (flattenSpans == null) flattenSpans = cm.options.flattenSpans;
                                                                                              var curStart = 0, curStyle = null;
                                                                                              var stream = new StringStream(text, cm.options.tabSize), style;
                                                                                      Severity: Minor
                                                                                      Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                                                                        Function highlightLine has 28 lines of code (exceeds 25 allowed). Consider refactoring.
                                                                                        Open

                                                                                            function highlightLine(cm, line, state, forceToEnd) {
                                                                                                // A styles array always starts with a number identifying the
                                                                                                // mode/overlays that it is based on (for easy invalidation).
                                                                                                var st = [cm.state.modeGen], lineClasses = {};
                                                                                                // Compute the base array of styles
                                                                                        Severity: Minor
                                                                                        Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                                                                          Function cursorCoords has 27 lines of code (exceeds 25 allowed). Consider refactoring.
                                                                                          Open

                                                                                              function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) {
                                                                                                  lineObj = lineObj || getLine(cm.doc, pos.line);
                                                                                                  if (!preparedMeasure) preparedMeasure = prepareMeasureForLine(cm, lineObj);
                                                                                                  function get(ch, right) {
                                                                                                      var m = measureCharPrepared(cm, preparedMeasure, ch, right ? "right" : "left", varHeight);
                                                                                          Severity: Minor
                                                                                          Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                                                                            Function handleKeyBinding has 26 lines of code (exceeds 25 allowed). Consider refactoring.
                                                                                            Open

                                                                                                function handleKeyBinding(cm, e) {
                                                                                                    // Handle automatic keymap transitions
                                                                                                    var startMap = getKeyMap(cm.options.keyMap), next = startMap.auto;
                                                                                                    clearTimeout(maybeTransition);
                                                                                                    if (next && !isModifierKey(e)) maybeTransition = setTimeout(function() {
                                                                                            Severity: Minor
                                                                                            Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                                                                              Function prepareCopyCut has 26 lines of code (exceeds 25 allowed). Consider refactoring.
                                                                                              Open

                                                                                                      function prepareCopyCut(e) {
                                                                                                          if (cm.somethingSelected()) {
                                                                                                              lastCopied = cm.getSelections();
                                                                                                              if (d.inaccurateSelection) {
                                                                                                                  d.prevInput = "";
                                                                                              Severity: Minor
                                                                                              Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                                                                                Consider simplifying this complex logical expression.
                                                                                                Open

                                                                                                            if (endsAfter || span.from == endCh && marker.type == "bookmark" && (!isInsert || span.marker.insertLeft)) {
                                                                                                                var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh);
                                                                                                                (nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh,
                                                                                                                        span.to == null ? null : span.to - endCh));
                                                                                                            }
                                                                                                Severity: Major
                                                                                                Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                                                                                  Consider simplifying this complex logical expression.
                                                                                                  Open

                                                                                                              if (startsBefore || span.from == startCh && marker.type == "bookmark" && (!isInsert || !span.marker.insertLeft)) {
                                                                                                                  var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh);
                                                                                                                  (nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to));
                                                                                                              }
                                                                                                  Severity: Major
                                                                                                  Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                                                                                    Consider simplifying this complex logical expression.
                                                                                                    Open

                                                                                                                if (inserted && !cm.state.pasteIncoming && cm.options.electricChars &&
                                                                                                                    cm.options.smartIndent && range.head.ch < 100 &&
                                                                                                                    (!i || doc.sel.ranges[i - 1].head.line != range.head.line)) {
                                                                                                                    var mode = cm.getModeAt(range.head);
                                                                                                                    var end = changeEnd(changeEvent);
                                                                                                    Severity: Major
                                                                                                    Found in game/static/game/js/skulpt/codemirror.js - About 1 hr to fix

                                                                                                      Function runMode has 7 arguments (exceeds 4 allowed). Consider refactoring.
                                                                                                      Open

                                                                                                          function runMode(cm, text, mode, state, f, lineClasses, forceToEnd) {
                                                                                                      Severity: Major
                                                                                                      Found in game/static/game/js/skulpt/codemirror.js - About 50 mins to fix

                                                                                                        Function cursorCoords has 6 arguments (exceeds 4 allowed). Consider refactoring.
                                                                                                        Open

                                                                                                            function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) {
                                                                                                        Severity: Minor
                                                                                                        Found in game/static/game/js/skulpt/codemirror.js - About 45 mins to fix

                                                                                                          Function buildToken has 6 arguments (exceeds 4 allowed). Consider refactoring.
                                                                                                          Open

                                                                                                              function buildToken(builder, text, style, startStyle, endStyle, title) {
                                                                                                          Severity: Minor
                                                                                                          Found in game/static/game/js/skulpt/codemirror.js - About 45 mins to fix

                                                                                                            Avoid deeply nested control flow statements.
                                                                                                            Open

                                                                                                                                    if (sp.to != null && nextChange > sp.to) { nextChange = sp.to; spanEndStyle = ""; }
                                                                                                            Severity: Major
                                                                                                            Found in game/static/game/js/skulpt/codemirror.js - About 45 mins to fix

                                                                                                              Avoid deeply nested control flow statements.
                                                                                                              Open

                                                                                                                                      if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0))
                                                                                                                                          collapsed = sp;
                                                                                                              Severity: Major
                                                                                                              Found in game/static/game/js/skulpt/codemirror.js - About 45 mins to fix

                                                                                                                Avoid deeply nested control flow statements.
                                                                                                                Open

                                                                                                                                        if (mayClear) {
                                                                                                                                            signal(m, "beforeCursorEnter");
                                                                                                                                            if (m.explicitlyCleared) {
                                                                                                                                                if (!line.markedSpans) break;
                                                                                                                                                else {--i; continue;}
                                                                                                                Severity: Major
                                                                                                                Found in game/static/game/js/skulpt/codemirror.js - About 45 mins to fix

                                                                                                                  Avoid deeply nested control flow statements.
                                                                                                                  Open

                                                                                                                                          if (m.className) spanStyle += " " + m.className;
                                                                                                                  Severity: Major
                                                                                                                  Found in game/static/game/js/skulpt/codemirror.js - About 45 mins to fix

                                                                                                                    Avoid deeply nested control flow statements.
                                                                                                                    Open

                                                                                                                                                for (++j; j < i && countsAsNum.test(types[j]); ++j) {}
                                                                                                                    Severity: Major
                                                                                                                    Found in game/static/game/js/skulpt/codemirror.js - About 45 mins to fix

                                                                                                                      Avoid deeply nested control flow statements.
                                                                                                                      Open

                                                                                                                                  if (cutTop && cutBot) {
                                                                                                                                      display.view = display.view.slice(0, cutTop.index)
                                                                                                                                          .concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN))
                                                                                                                                          .concat(display.view.slice(cutBot.index));
                                                                                                                                      display.viewTo += lendiff;
                                                                                                                      Severity: Major
                                                                                                                      Found in game/static/game/js/skulpt/codemirror.js - About 45 mins to fix

                                                                                                                        Avoid deeply nested control flow statements.
                                                                                                                        Open

                                                                                                                                                if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) {
                                                                                                                                                    indentLine(cm, end.line, "smart");
                                                                                                                                                    break;
                                                                                                                                                }
                                                                                                                        Severity: Major
                                                                                                                        Found in game/static/game/js/skulpt/codemirror.js - About 45 mins to fix

                                                                                                                          Avoid deeply nested control flow statements.
                                                                                                                          Open

                                                                                                                                                  if (sameLine) (first || (first = [])).push(span);
                                                                                                                          Severity: Major
                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js - About 45 mins to fix

                                                                                                                            Avoid deeply nested control flow statements.
                                                                                                                            Open

                                                                                                                                                    if (m.startStyle && sp.from == pos) spanStartStyle += " " + m.startStyle;
                                                                                                                            Severity: Major
                                                                                                                            Found in game/static/game/js/skulpt/codemirror.js - About 45 mins to fix

                                                                                                                              Avoid deeply nested control flow statements.
                                                                                                                              Open

                                                                                                                                                      if (m.title && !title) title = m.title;
                                                                                                                              Severity: Major
                                                                                                                              Found in game/static/game/js/skulpt/codemirror.js - About 45 mins to fix

                                                                                                                                Avoid deeply nested control flow statements.
                                                                                                                                Open

                                                                                                                                                        if (oldCur[k].marker == span.marker) continue spans;
                                                                                                                                Severity: Major
                                                                                                                                Found in game/static/game/js/skulpt/codemirror.js - About 45 mins to fix

                                                                                                                                  Avoid deeply nested control flow statements.
                                                                                                                                  Open

                                                                                                                                                      } else if (sp.from > pos && nextChange > sp.from) {
                                                                                                                                                          nextChange = sp.from;
                                                                                                                                                      }
                                                                                                                                  Severity: Major
                                                                                                                                  Found in game/static/game/js/skulpt/codemirror.js - About 45 mins to fix

                                                                                                                                    Avoid deeply nested control flow statements.
                                                                                                                                    Open

                                                                                                                                                            if (cmp(newPos, curPos) == 0) {
                                                                                                                                                                newPos.ch += dir;
                                                                                                                                                                if (newPos.ch < 0) {
                                                                                                                                                                    if (newPos.line > doc.first) newPos = clipPos(doc, Pos(newPos.line - 1));
                                                                                                                                                                    else newPos = null;
                                                                                                                                    Severity: Major
                                                                                                                                    Found in game/static/game/js/skulpt/codemirror.js - About 45 mins to fix

                                                                                                                                      Avoid deeply nested control flow statements.
                                                                                                                                      Open

                                                                                                                                                              if (m.endStyle && sp.to == nextChange) spanEndStyle += " " + m.endStyle;
                                                                                                                                      Severity: Major
                                                                                                                                      Found in game/static/game/js/skulpt/codemirror.js - About 45 mins to fix

                                                                                                                                        Avoid deeply nested control flow statements.
                                                                                                                                        Open

                                                                                                                                                    if (cut) {
                                                                                                                                                        display.view = display.view.slice(0, cut.index);
                                                                                                                                                        display.viewTo = cut.lineN;
                                                                                                                                                    } else {
                                                                                                                                                        resetView(cm);
                                                                                                                                        Severity: Major
                                                                                                                                        Found in game/static/game/js/skulpt/codemirror.js - About 45 mins to fix

                                                                                                                                          Avoid deeply nested control flow statements.
                                                                                                                                          Open

                                                                                                                                                                      if (pos < j) order.splice(at, 0, new BidiSpan(1, pos, j));
                                                                                                                                          Severity: Major
                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js - About 45 mins to fix

                                                                                                                                            Avoid deeply nested control flow statements.
                                                                                                                                            Open

                                                                                                                                                            if (newGroup) for (var prop in change) if (m = prop.match(/^spans_(\d+)$/)) {
                                                                                                                                                                if (indexOf(newGroup, Number(m[1])) > -1) {
                                                                                                                                                                    lst(newChanges)[prop] = change[prop];
                                                                                                                                                                    delete change[prop];
                                                                                                                                                                }
                                                                                                                                            Severity: Major
                                                                                                                                            Found in game/static/game/js/skulpt/codemirror.js - About 45 mins to fix

                                                                                                                                              Avoid deeply nested control flow statements.
                                                                                                                                              Open

                                                                                                                                                                      if (!m.atomic) continue;
                                                                                                                                              Severity: Major
                                                                                                                                              Found in game/static/game/js/skulpt/codemirror.js - About 45 mins to fix

                                                                                                                                                Avoid deeply nested control flow statements.
                                                                                                                                                Open

                                                                                                                                                                    if (mode.electricInput.test(getLine(doc, end.line).text.slice(0, end.ch)))
                                                                                                                                                                        indentLine(cm, end.line, "smart");
                                                                                                                                                Severity: Major
                                                                                                                                                Found in game/static/game/js/skulpt/codemirror.js - About 45 mins to fix

                                                                                                                                                  Consider simplifying this complex logical expression.
                                                                                                                                                  Open

                                                                                                                                                          else if (unit == "word" || unit == "group") {
                                                                                                                                                              var sawType = null, group = unit == "group";
                                                                                                                                                              var helper = doc.cm && doc.cm.getHelper(pos, "wordChars");
                                                                                                                                                              for (var first = true;; first = false) {
                                                                                                                                                                  if (dir < 0 && !moveOnce(!first)) break;
                                                                                                                                                  Severity: Major
                                                                                                                                                  Found in game/static/game/js/skulpt/codemirror.js - About 40 mins to fix

                                                                                                                                                    Consider simplifying this complex logical expression.
                                                                                                                                                    Open

                                                                                                                                                            if (!update.force &&
                                                                                                                                                                update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo &&
                                                                                                                                                                (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) &&
                                                                                                                                                                countDirtyView(cm) == 0)
                                                                                                                                                                return false;
                                                                                                                                                    Severity: Major
                                                                                                                                                    Found in game/static/game/js/skulpt/codemirror.js - About 40 mins to fix

                                                                                                                                                      Consider simplifying this complex logical expression.
                                                                                                                                                      Open

                                                                                                                                                              if (opId == hist.lastSelOp ||
                                                                                                                                                                  (origin && hist.lastSelOrigin == origin &&
                                                                                                                                                                      (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin ||
                                                                                                                                                                          selectionEventCanBeMerged(doc, origin, lst(hist.done), sel))))
                                                                                                                                                                  hist.done[hist.done.length - 1] = sel;
                                                                                                                                                      Severity: Major
                                                                                                                                                      Found in game/static/game/js/skulpt/codemirror.js - About 40 mins to fix

                                                                                                                                                        Consider simplifying this complex logical expression.
                                                                                                                                                        Open

                                                                                                                                                                if (cm.options.dragDrop && dragAndDrop && !isReadOnly(cm) &&
                                                                                                                                                                    type == "single" && sel.contains(start) > -1 && sel.somethingSelected())
                                                                                                                                                                    leftButtonStartDrag(cm, e, start, modifier);
                                                                                                                                                                else
                                                                                                                                                                    leftButtonSelect(cm, e, start, type, modifier);
                                                                                                                                                        Severity: Major
                                                                                                                                                        Found in game/static/game/js/skulpt/codemirror.js - About 40 mins to fix

                                                                                                                                                          Consider simplifying this complex logical expression.
                                                                                                                                                          Open

                                                                                                                                                                  if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) {
                                                                                                                                                                      var rSpan = node.parentNode.getClientRects()[0];
                                                                                                                                                                      if (rSpan)
                                                                                                                                                                          rect = {left: rSpan.left, right: rSpan.left + charWidth(cm.display), top: rSpan.top, bottom: rSpan.bottom};
                                                                                                                                                                      else
                                                                                                                                                          Severity: Major
                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js - About 40 mins to fix

                                                                                                                                                            Consider simplifying this complex logical expression.
                                                                                                                                                            Open

                                                                                                                                                                        if (display.wheelStartX == null) {
                                                                                                                                                                            display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;
                                                                                                                                                                            display.wheelDX = dx; display.wheelDY = dy;
                                                                                                                                                                            setTimeout(function() {
                                                                                                                                                                                if (display.wheelStartX == null) return;
                                                                                                                                                            Severity: Major
                                                                                                                                                            Found in game/static/game/js/skulpt/codemirror.js - About 40 mins to fix

                                                                                                                                                              Function findPosH has 5 arguments (exceeds 4 allowed). Consider refactoring.
                                                                                                                                                              Open

                                                                                                                                                                  function findPosH(doc, pos, dir, unit, visually) {
                                                                                                                                                              Severity: Minor
                                                                                                                                                              Found in game/static/game/js/skulpt/codemirror.js - About 35 mins to fix

                                                                                                                                                                Function countColumn has 5 arguments (exceeds 4 allowed). Consider refactoring.
                                                                                                                                                                Open

                                                                                                                                                                    var countColumn = CodeMirror.countColumn = function(string, end, tabSize, startIndex, startValue) {
                                                                                                                                                                Severity: Minor
                                                                                                                                                                Found in game/static/game/js/skulpt/codemirror.js - About 35 mins to fix

                                                                                                                                                                  Function coordsCharInner has 5 arguments (exceeds 4 allowed). Consider refactoring.
                                                                                                                                                                  Open

                                                                                                                                                                      function coordsCharInner(cm, lineObj, lineNo, x, y) {
                                                                                                                                                                  Severity: Minor
                                                                                                                                                                  Found in game/static/game/js/skulpt/codemirror.js - About 35 mins to fix

                                                                                                                                                                    Function scrollIntoView has 5 arguments (exceeds 4 allowed). Consider refactoring.
                                                                                                                                                                    Open

                                                                                                                                                                        function scrollIntoView(cm, x1, y1, x2, y2) {
                                                                                                                                                                    Severity: Minor
                                                                                                                                                                    Found in game/static/game/js/skulpt/codemirror.js - About 35 mins to fix

                                                                                                                                                                      Function charCoords has 5 arguments (exceeds 4 allowed). Consider refactoring.
                                                                                                                                                                      Open

                                                                                                                                                                          function charCoords(cm, pos, context, lineObj, bias) {
                                                                                                                                                                      Severity: Minor
                                                                                                                                                                      Found in game/static/game/js/skulpt/codemirror.js - About 35 mins to fix

                                                                                                                                                                        Function replaceRange has 5 arguments (exceeds 4 allowed). Consider refactoring.
                                                                                                                                                                        Open

                                                                                                                                                                            function replaceRange(doc, code, from, to, origin) {
                                                                                                                                                                        Severity: Minor
                                                                                                                                                                        Found in game/static/game/js/skulpt/codemirror.js - About 35 mins to fix

                                                                                                                                                                          Function addWidget has 5 arguments (exceeds 4 allowed). Consider refactoring.
                                                                                                                                                                          Open

                                                                                                                                                                                  addWidget: function(pos, node, scroll, vert, horiz) {
                                                                                                                                                                          Severity: Minor
                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js - About 35 mins to fix

                                                                                                                                                                            Function markTextShared has 5 arguments (exceeds 4 allowed). Consider refactoring.
                                                                                                                                                                            Open

                                                                                                                                                                                function markTextShared(doc, from, to, options, type) {
                                                                                                                                                                            Severity: Minor
                                                                                                                                                                            Found in game/static/game/js/skulpt/codemirror.js - About 35 mins to fix

                                                                                                                                                                              Function conflictingCollapsedRange has 5 arguments (exceeds 4 allowed). Consider refactoring.
                                                                                                                                                                              Open

                                                                                                                                                                                  function conflictingCollapsedRange(doc, lineNo, from, to, marker) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in game/static/game/js/skulpt/codemirror.js - About 35 mins to fix

                                                                                                                                                                                Function calculateScrollPos has 5 arguments (exceeds 4 allowed). Consider refactoring.
                                                                                                                                                                                Open

                                                                                                                                                                                    function calculateScrollPos(cm, x1, y1, x2, y2) {
                                                                                                                                                                                Severity: Minor
                                                                                                                                                                                Found in game/static/game/js/skulpt/codemirror.js - About 35 mins to fix

                                                                                                                                                                                  Function markText has 5 arguments (exceeds 4 allowed). Consider refactoring.
                                                                                                                                                                                  Open

                                                                                                                                                                                      function markText(doc, from, to, options, type) {
                                                                                                                                                                                  Severity: Minor
                                                                                                                                                                                  Found in game/static/game/js/skulpt/codemirror.js - About 35 mins to fix

                                                                                                                                                                                    Function leftButtonSelect has 5 arguments (exceeds 4 allowed). Consider refactoring.
                                                                                                                                                                                    Open

                                                                                                                                                                                        function leftButtonSelect(cm, e, start, type, addNew) {
                                                                                                                                                                                    Severity: Minor
                                                                                                                                                                                    Found in game/static/game/js/skulpt/codemirror.js - About 35 mins to fix

                                                                                                                                                                                      Function measureCharPrepared has 5 arguments (exceeds 4 allowed). Consider refactoring.
                                                                                                                                                                                      Open

                                                                                                                                                                                          function measureCharPrepared(cm, prepared, ch, bias, varHeight) {
                                                                                                                                                                                      Severity: Minor
                                                                                                                                                                                      Found in game/static/game/js/skulpt/codemirror.js - About 35 mins to fix

                                                                                                                                                                                        Function elt has 5 arguments (exceeds 4 allowed). Consider refactoring.
                                                                                                                                                                                        Open

                                                                                                                                                                                            function elt(tag, content, className, style, id=null) {
                                                                                                                                                                                        Severity: Minor
                                                                                                                                                                                        Found in game/static/game/js/skulpt/codemirror.js - About 35 mins to fix

                                                                                                                                                                                          Function gutterEvent has 5 arguments (exceeds 4 allowed). Consider refactoring.
                                                                                                                                                                                          Open

                                                                                                                                                                                              function gutterEvent(cm, e, type, prevent, signalfn) {
                                                                                                                                                                                          Severity: Minor
                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js - About 35 mins to fix

                                                                                                                                                                                            Avoid too many return statements within this function.
                                                                                                                                                                                            Open

                                                                                                                                                                                                        return false;
                                                                                                                                                                                            Severity: Major
                                                                                                                                                                                            Found in game/static/game/js/skulpt/codemirror.js - About 30 mins to fix

                                                                                                                                                                                              Avoid too many return statements within this function.
                                                                                                                                                                                              Open

                                                                                                                                                                                                              return lookup(fallthrough);
                                                                                                                                                                                              Severity: Major
                                                                                                                                                                                              Found in game/static/game/js/skulpt/codemirror.js - About 30 mins to fix

                                                                                                                                                                                                Avoid too many return statements within this function.
                                                                                                                                                                                                Open

                                                                                                                                                                                                            else if (code == 0x200c) return "b";
                                                                                                                                                                                                Severity: Major
                                                                                                                                                                                                Found in game/static/game/js/skulpt/codemirror.js - About 30 mins to fix

                                                                                                                                                                                                  Avoid too many return statements within this function.
                                                                                                                                                                                                  Open

                                                                                                                                                                                                              else return "L";
                                                                                                                                                                                                  Severity: Major
                                                                                                                                                                                                  Found in game/static/game/js/skulpt/codemirror.js - About 30 mins to fix

                                                                                                                                                                                                    Avoid too many return statements within this function.
                                                                                                                                                                                                    Open

                                                                                                                                                                                                                    if (done) return done;
                                                                                                                                                                                                    Severity: Major
                                                                                                                                                                                                    Found in game/static/game/js/skulpt/codemirror.js - About 30 mins to fix

                                                                                                                                                                                                      Avoid too many return statements within this function.
                                                                                                                                                                                                      Open

                                                                                                                                                                                                                      if (!part) return null;
                                                                                                                                                                                                      Severity: Major
                                                                                                                                                                                                      Found in game/static/game/js/skulpt/codemirror.js - About 30 mins to fix

                                                                                                                                                                                                        Avoid too many return statements within this function.
                                                                                                                                                                                                        Open

                                                                                                                                                                                                                    else if (0x2000 <= code && code <= 0x200b) return "w";
                                                                                                                                                                                                        Severity: Major
                                                                                                                                                                                                        Found in game/static/game/js/skulpt/codemirror.js - About 30 mins to fix

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                              keyMap.emacsy = {
                                                                                                                                                                                                                  "Ctrl-F": "goCharRight", "Ctrl-B": "goCharLeft", "Ctrl-P": "goLineUp", "Ctrl-N": "goLineDown",
                                                                                                                                                                                                                  "Alt-F": "goWordRight", "Alt-B": "goWordLeft", "Ctrl-A": "goLineStart", "Ctrl-E": "goLineEnd",
                                                                                                                                                                                                                  "Ctrl-V": "goPageDown", "Shift-Ctrl-V": "goPageUp", "Ctrl-D": "delCharAfter", "Ctrl-H": "delCharBefore",
                                                                                                                                                                                                                  "Alt-D": "delWordAfter", "Alt-Backspace": "delWordBefore", "Ctrl-K": "killLine", "Ctrl-T": "transposeChars"
                                                                                                                                                                                                          Severity: Major
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 2 hrs to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 4855..4862

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 91.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                              keyMap.basic = {
                                                                                                                                                                                                                  "Left": "goCharLeft", "Right": "goCharRight", "Up": "goLineUp", "Down": "goLineDown",
                                                                                                                                                                                                                  "End": "goLineEnd", "Home": "goLineStartSmart", "PageUp": "goPageUp", "PageDown": "goPageDown",
                                                                                                                                                                                                                  "Delete": "delCharAfter", "Backspace": "delCharBefore", "Shift-Backspace": "delCharBefore",
                                                                                                                                                                                                                  "Tab": "defaultTab", "Shift-Tab": "indentAuto",
                                                                                                                                                                                                          Severity: Major
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 2 hrs to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 4887..4892

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 91.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                  linkedDocs(doc, function(doc, sharedHist) {
                                                                                                                                                                                                                      if (!sharedHist && indexOf(rebased, doc.history) == -1) {
                                                                                                                                                                                                                          rebaseHist(doc.history, change);
                                                                                                                                                                                                                          rebased.push(doc.history);
                                                                                                                                                                                                                      }
                                                                                                                                                                                                          Severity: Major
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 2 hrs to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 3574..3580

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 84.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                      linkedDocs(doc, function(doc, sharedHist) {
                                                                                                                                                                                                                          if (!sharedHist && indexOf(rebased, doc.history) == -1) {
                                                                                                                                                                                                                              rebaseHist(doc.history, change);
                                                                                                                                                                                                                              rebased.push(doc.history);
                                                                                                                                                                                                                          }
                                                                                                                                                                                                          Severity: Major
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 2 hrs to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 3510..3516

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 84.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                      for (var i = 0; i < p.children.length; ++i) {
                                                                                                                                                                                                                          var cur = p.children[i];
                                                                                                                                                                                                                          if (cur == chunk) break;
                                                                                                                                                                                                                          else h += cur.height;
                                                                                                                                                                                                                      }
                                                                                                                                                                                                          Severity: Major
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 1 hr to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 6799..6803

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 67.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                  for (var i = 0; i < chunk.lines.length; ++i) {
                                                                                                                                                                                                                      var line = chunk.lines[i];
                                                                                                                                                                                                                      if (line == lineObj) break;
                                                                                                                                                                                                                      else h += line.height;
                                                                                                                                                                                                                  }
                                                                                                                                                                                                          Severity: Major
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 1 hr to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 6805..6809

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 67.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                      if (scrollPos.scrollTop != null) {
                                                                                                                                                                                                                          setScrollTop(cm, scrollPos.scrollTop);
                                                                                                                                                                                                                          if (Math.abs(cm.doc.scrollTop - startTop) > 1) changed = true;
                                                                                                                                                                                                                      }
                                                                                                                                                                                                          Severity: Major
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 1 hr to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 3735..3738

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 62.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                      if (scrollPos.scrollLeft != null) {
                                                                                                                                                                                                                          setScrollLeft(cm, scrollPos.scrollLeft);
                                                                                                                                                                                                                          if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) changed = true;
                                                                                                                                                                                                                      }
                                                                                                                                                                                                          Severity: Major
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 1 hr to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 3731..3734

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 62.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                  if (top != null)
                                                                                                                                                                                                                      cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top;
                                                                                                                                                                                                          Severity: Major
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 1 hr to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 3787..3788

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 61.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                      result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10,
                                                                                                                                                                                                                              headPos.top + lineOff.top - wrapOff.top));
                                                                                                                                                                                                          Severity: Major
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 1 hr to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 1277..1278

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 61.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                      result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10,
                                                                                                                                                                                                                              headPos.left + lineOff.left - wrapOff.left));
                                                                                                                                                                                                          Severity: Major
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 1 hr to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 1275..1276

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 61.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                  if (left != null)
                                                                                                                                                                                                                      cm.curOp.scrollLeft = (cm.curOp.scrollLeft == null ? cm.doc.scrollLeft : cm.curOp.scrollLeft) + left;
                                                                                                                                                                                                          Severity: Major
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 1 hr to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 3789..3790

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 61.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                          if (!start || leftPos.top < start.top || leftPos.top == start.top && leftPos.left < start.left)
                                                                                                                                                                                                                              start = leftPos;
                                                                                                                                                                                                          Severity: Major
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 1 hr to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 1359..1360

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 61.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                          if (!end || rightPos.bottom > end.bottom || rightPos.bottom == end.bottom && rightPos.right > end.right)
                                                                                                                                                                                                                              end = rightPos;
                                                                                                                                                                                                          Severity: Major
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 1 hr to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 1357..1358

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 61.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                          if (dfrom < 0 || !mk.inclusiveLeft && !dfrom)
                                                                                                                                                                                                                              newParts.push({from: p.from, to: m.from});
                                                                                                                                                                                                          Severity: Minor
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 55 mins to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 5527..5528

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 54.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                          if (dto > 0 || !mk.inclusiveRight && !dto)
                                                                                                                                                                                                                              newParts.push({from: m.to, to: p.to});
                                                                                                                                                                                                          Severity: Minor
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 55 mins to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 5525..5526

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 54.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                      for (var i = 0; i < hist.undone.length; i++) if (!hist.undone[i].ranges) ++undone;
                                                                                                                                                                                                          Severity: Minor
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 50 mins to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 6506..6506

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 51.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                      for (var i = 0; i < hist.done.length; i++) if (!hist.done[i].ranges) ++done;
                                                                                                                                                                                                          Severity: Minor
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 50 mins to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 6507..6507

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 51.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                          setScrollTop(cm, Math.max(0, Math.min(scroll.scrollTop + dy * wheelPixelsPerUnit, scroll.scrollHeight - scroll.clientHeight)));
                                                                                                                                                                                                          Severity: Minor
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 45 mins to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 3110..3110

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 50.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                      if (cm.display.shift || doc.extend)
                                                                                                                                                                                                                          ourRange = extendRange(doc, ourRange, word.anchor, word.head);
                                                                                                                                                                                                                      else
                                                                                                                                                                                                                          ourRange = word;
                                                                                                                                                                                                          Severity: Minor
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 45 mins to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 2816..2819

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 50.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                              var e_preventDefault = CodeMirror.e_preventDefault = function(e) {
                                                                                                                                                                                                                  if (e.preventDefault) e.preventDefault();
                                                                                                                                                                                                                  else e.returnValue = false;
                                                                                                                                                                                                              };
                                                                                                                                                                                                          Severity: Minor
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 45 mins to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 7075..7078

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 50.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                      setScrollLeft(cm, Math.max(0, Math.min(scroll.scrollLeft + dx * wheelPixelsPerUnit, scroll.scrollWidth - scroll.clientWidth)));
                                                                                                                                                                                                          Severity: Minor
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 45 mins to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 3109..3109

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 50.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                      if (cm.display.shift || doc.extend)
                                                                                                                                                                                                                          ourRange = extendRange(doc, ourRange, line.anchor, line.head);
                                                                                                                                                                                                                      else
                                                                                                                                                                                                                          ourRange = line;
                                                                                                                                                                                                          Severity: Minor
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 45 mins to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 2810..2813

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 50.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                              var e_stopPropagation = CodeMirror.e_stopPropagation = function(e) {
                                                                                                                                                                                                                  if (e.stopPropagation) e.stopPropagation();
                                                                                                                                                                                                                  else e.cancelBubble = true;
                                                                                                                                                                                                              };
                                                                                                                                                                                                          Severity: Minor
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 45 mins to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 7071..7074

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 50.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                  var textClass = lineView.textClass ? lineView.textClass + " " + (lineView.line.textClass || "") : lineView.line.textClass;
                                                                                                                                                                                                          Severity: Minor
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 40 mins to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 811..811

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 49.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                  var cls = lineView.bgClass ? lineView.bgClass + " " + (lineView.line.bgClass || "") : lineView.line.bgClass;
                                                                                                                                                                                                          Severity: Minor
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 40 mins to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 858..858

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 49.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                  var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft;
                                                                                                                                                                                                          Severity: Minor
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 40 mins to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 3757..3757

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 49.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                      var top = Math.max(0, Math.min(display.scroller.scrollHeight - display.scroller.clientHeight, op.scrollTop));
                                                                                                                                                                                                          Severity: Minor
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 40 mins to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 2097..2097

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 49.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                      var left = Math.max(0, Math.min(display.scroller.scrollWidth - display.scroller.clientWidth, op.scrollLeft));
                                                                                                                                                                                                          Severity: Minor
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 40 mins to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 2093..2093

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 49.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                  var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop;
                                                                                                                                                                                                          Severity: Minor
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 40 mins to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 3769..3769

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 49.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                              if ((sp.from == null || (m.inclusiveLeft ? sp.from <= curPos.ch : sp.from < curPos.ch)) &&
                                                                                                                                                                                                          Severity: Minor
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 35 mins to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 1214..1214

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 47.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                                  (sp.to == null || (m.inclusiveRight ? sp.to >= curPos.ch : sp.to > curPos.ch))) {
                                                                                                                                                                                                          Severity: Minor
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 35 mins to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 1213..1213

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 47.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                  if (needsV) {
                                                                                                                                                                                                                      d.scrollbarV.style.display = "block";
                                                                                                                                                                                                                      d.scrollbarV.style.bottom = needsH ? sWidth + "px" : "0";
                                                                                                                                                                                                                      // A bug in IE8 can cause this value to be negative, so guard it.
                                                                                                                                                                                                                      d.scrollbarV.firstChild.style.height =
                                                                                                                                                                                                          Severity: Minor
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 35 mins to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 436..444

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 46.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                  if (needsH) {
                                                                                                                                                                                                                      d.scrollbarH.style.display = "block";
                                                                                                                                                                                                                      d.scrollbarH.style.right = needsV ? sWidth + "px" : "0";
                                                                                                                                                                                                                      d.scrollbarH.firstChild.style.width =
                                                                                                                                                                                                                          (measure.scrollWidth - measure.clientWidth + (measure.barWidth || d.scrollbarH.clientWidth)) + "px";
                                                                                                                                                                                                          Severity: Minor
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 35 mins to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 426..435

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 46.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 4 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                      var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh);
                                                                                                                                                                                                          Severity: Major
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 3 other locations - About 30 mins to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 5385..5385
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 5394..5394
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 5396..5396

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 45.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 4 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                      var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh);
                                                                                                                                                                                                          Severity: Major
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 3 other locations - About 30 mins to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 5383..5383
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 5385..5385
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 5396..5396

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 45.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 4 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                          var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh);
                                                                                                                                                                                                          Severity: Major
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 3 other locations - About 30 mins to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 5383..5383
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 5385..5385
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 5394..5394

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 45.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 4 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                          var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh);
                                                                                                                                                                                                          Severity: Major
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 3 other locations - About 30 mins to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 5383..5383
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 5394..5394
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 5396..5396

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 45.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                  on(d.scrollbarH, "scroll", function() {
                                                                                                                                                                                                                      if (d.scroller.clientHeight) setScrollLeft(cm, d.scrollbarH.scrollLeft);
                                                                                                                                                                                                                  });
                                                                                                                                                                                                          Severity: Minor
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 30 mins to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 2553..2555

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 45.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                  on(d.scrollbarV, "scroll", function() {
                                                                                                                                                                                                                      if (d.scroller.clientHeight) setScrollTop(cm, d.scrollbarV.scrollTop);
                                                                                                                                                                                                                  });
                                                                                                                                                                                                          Severity: Minor
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 30 mins to fix
                                                                                                                                                                                                          game/static/game/js/skulpt/codemirror.js on lines 2556..2558

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 45.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                                                          Open

                                                                                                                                                                                                                      if (target == display.scrollbarH || target == display.scrollbarV ||
                                                                                                                                                                                                                          target == display.scrollbarFiller || target == display.gutterFiller) return null;
                                                                                                                                                                                                          Severity: Minor
                                                                                                                                                                                                          Found in game/static/game/js/skulpt/codemirror.js and 1 other location - About 30 mins to fix
                                                                                                                                                                                                          game/static/game/js/raphael.js on lines 1682..1682

                                                                                                                                                                                                          Duplicated Code

                                                                                                                                                                                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                                                                                                                                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                                                                                                                                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                                                                                                                                                          Tuning

                                                                                                                                                                                                          This issue has a mass of 45.

                                                                                                                                                                                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                                                                                                                                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                                                                                                                                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                                                                                                                                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                                                                                                                                                          Refactorings

                                                                                                                                                                                                          Further Reading

                                                                                                                                                                                                          There are no issues that match your filters.

                                                                                                                                                                                                          Category
                                                                                                                                                                                                          Status