anchor.diff:            cursorCoords.x - (parameterHint.text.length * charWidth ~/ 2), 0);
   
         var parameterPopup = querySelector(".parameter-hints")
  -        ..style.top = "${cursorCoords.y - lineHeight - 5}px";
  +        ..style.top = "${heightOfMethod}px";
         var oldLeft = parameterPopup.style.left;
         oldLeft = int.parse(oldLeft.substring(0, oldLeft.indexOf("px")));
         if ((newLeft - oldLeft).abs() > 50) {
  
positive.code:       var parameterPopup = new DivElement()
          ..classes.add("parameter-hints")
          ..style.left = "${left}px"
          ..style.top = "${cursorCoords.y - lineHeight - 5}px";
        parameterPopup.append(parameterHint);
        document.body.append(parameterPopup);
      }
  
negative.code:       }
  
        // Check if cursor is still in parameter position
        parInfo = _parameterInfo(
            editor.document.value,
            editor.document.indexFromPos(editor.document.cursor));
        if (parInfo == null) {
          remove();
          return;
        }
        _showParameterPopup(outputString, offset);
      });
    }
  
    void _showParameterPopup(String string, int methodOffset) {
      DivElement editorDiv = querySelector("#editpanel .CodeMirror");
      var lineHeight = editorDiv.getComputedStyle().getPropertyValue('line-height');
      lineHeight = int.parse(lineHeight.substring(0, lineHeight.indexOf("px")));
      // var charWidth = editorDiv.getComputedStyle().getPropertyValue('letter-spacing');
      int charWidth = 8;
  
      Position methodPosition = editor.document.posFromIndex(methodOffset);
      Position cursorPosition = editor.document.cursor;
      Point cursorCoords = editor.cursorCoords;
  
      int heightDifference = methodPosition.line - cursorPosition.line - 1 ;
      int heightOfMethod = cursorCoords.y + heightDifference * lineHeight - 5;
  
      if (parPopupActive) {
        var parameterHint = querySelector(".parameter-hint");
  