コード例 #1
0
    @Override
    public ExitFlags doExit(
        LinkedModeModel environment, VerifyEvent event, int offset, int length) {

      if (event.character == fExitCharacter) {
        if (environment.anyPositionContains(offset)) {
          return new ExitFlags(ILinkedModeListener.UPDATE_CARET, false);
        } else {
          return new ExitFlags(ILinkedModeListener.UPDATE_CARET, true);
        }
      }

      switch (event.character) {
        case ';':
          return new ExitFlags(ILinkedModeListener.NONE, true);
        case SWT.CR:
          // when entering a function as a parameter, we don't want
          // to jump after the parenthesis when return is pressed
          if (offset > 0) {
            try {
              if (fDocument.getChar(offset - 1) == '{') {
                return new ExitFlags(ILinkedModeListener.EXIT_ALL, true);
              }
            } catch (BadLocationException e) {
            }
          }
          return null;
        default:
          return null;
      }
    }