code: public void removeSpaceToLastLineBreak(IContext ctx) {
          boolean shouldRemoveSpace = true;
          List<Token> bl = builders();
          for (int i = bl.size() - 1; i >= 0; --i) {
              TextBuilder tb = bl.get(i);
              if (tb == Token.EMPTY_TOKEN || tb instanceof IDirective) {
                  continue;
              }
              if (tb.getClass().equals(Token.StringToken.class)) {
                  String s = tb.toString();
                  if (s.matches("[ \\t\\x0B\\f]+")) {
                      continue;
                  } else if (s.matches("(\\n\\r|\\r\\n|[\\r\\n])")) {
                  } else {
                      shouldRemoveSpace = false;
                  }
              }
              break;
          }
          if (shouldRemoveSpace) {
              for (int i = bl.size() - 1; i >= 0; --i) {
                  TextBuilder tb = bl.get(i);
                  if (tb == Token.EMPTY_TOKEN || tb instanceof IDirective) {
                      continue;
                  }
                  if (tb.getClass().equals(Token.StringToken.class)) {
                      String s = tb.toString();
                      if (s.matches("[ \\t\\x0B\\f]+")) {
                          bl.remove(i);
                          continue;
                      } else if (s.matches("(\\n\\r|\\r\\n|[\\r\\n])")) {
                          bl.remove(i);
                      }
                  }
                  break;
              }
          }
      }
docs: If from the current cursor to last linebreak are all space, then
  remove all those spaces and the last line break