public void doneBefore(@NotNull IElementType type, @NotNull PsiBuilder.Marker before) { delegate.doneBefore(type, before); open = false; }
@Override public void doneBefore(@NotNull IElementType type, @NotNull Marker before, String errorMessage) { original.doneBefore(type, before, errorMessage); psiBuilder.recycle(this); }
@Override public void doneBefore(@NotNull IElementType type, @NotNull Marker beforeCandidate) { //IntelliJ's API assumes that before is a StartMarker and not another implementation //thus we have to pass the original marker Marker before = beforeCandidate instanceof BashPsiMarker ? ((BashPsiMarker) beforeCandidate).original : beforeCandidate; original.doneBefore(type, before); psiBuilder.recycle(this); }
if (!parsed) { function.doneBefore(BashElementTypes.FUNCTION_DEF_COMMAND, bodyMarker); bodyMarker.drop();
if (latestDoneMarker != null) { if (latestDoneMarker.getTokenType() == END_DIRECTIVE) { branchMarker.doneBefore(branchTokenType, currentMarker); branchMarker.setCustomEdgeTokenBinders(WhitespacesBinders.GREEDY_LEFT_BINDER, WhitespacesBinders.GREEDY_RIGHT_BINDER); currentMarker.drop(); branchMarker.doneBefore(branchTokenType, currentMarker); branchMarker.setCustomEdgeTokenBinders(WhitespacesBinders.GREEDY_LEFT_BINDER, WhitespacesBinders.GREEDY_RIGHT_BINDER); branchMarker = currentMarker.precede(); branchMarker.doneBefore(branchTokenType, currentMarker); branchMarker.setCustomEdgeTokenBinders(WhitespacesBinders.GREEDY_LEFT_BINDER, WhitespacesBinders.GREEDY_RIGHT_BINDER); branchMarker = currentMarker.precede();
if (latestDoneMarker != null) { if (latestDoneMarker.getTokenType() == END_DIRECTIVE) { branchMarker.doneBefore(branchTokenType, currentMarker); branchMarker.setCustomEdgeTokenBinders(WhitespacesBinders.GREEDY_LEFT_BINDER, WhitespacesBinders.GREEDY_RIGHT_BINDER); currentMarker.drop(); branchMarker.doneBefore(branchTokenType, currentMarker); branchMarker.setCustomEdgeTokenBinders(WhitespacesBinders.GREEDY_LEFT_BINDER, WhitespacesBinders.GREEDY_RIGHT_BINDER); branchMarker = currentMarker.precede(); branchMarker.doneBefore(branchTokenType, currentMarker); branchMarker.setCustomEdgeTokenBinders(WhitespacesBinders.GREEDY_LEFT_BINDER, WhitespacesBinders.GREEDY_RIGHT_BINDER); branchMarker = currentMarker.precede();
if (latestDoneMarker.getTokenType() == END_DIRECTIVE) { if (branchMarker != null) { branchMarker.doneBefore(CASE_BLOCK, currentMarker); branchMarker.setCustomEdgeTokenBinders(WhitespacesBinders.DEFAULT_LEFT_BINDER, WhitespacesBinders.GREEDY_RIGHT_BINDER); branchMarker.doneBefore(CASE_BLOCK, currentMarker); branchMarker.setCustomEdgeTokenBinders(WhitespacesBinders.DEFAULT_LEFT_BINDER, WhitespacesBinders.GREEDY_RIGHT_BINDER);
public void doneBefore(@NotNull IElementType type, @NotNull PsiBuilder.Marker before, String errorMessage) { delegate.doneBefore(type, before, errorMessage); open = false; }