js: simplify line separators in template strings intentions

GitOrigin-RevId: aff6931b28fe45f1ac4225c9165af0026cf9a254
This commit is contained in:
Maxim Kropotov
2019-04-29 16:48:33 +03:00
committed by intellij-monorepo-bot
parent 43a8e9b096
commit 5a40a85d67
@@ -1,60 +0,0 @@
/*
* Copyright 2000-2016 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.intellij.openapi.util.text;
import org.jetbrains.annotations.NotNull;
/**
* @author Irina.Chernushina on 8/22/2016.
*/
public abstract class StringInjectionsProcessor {
@NotNull
private final String myStart;
@NotNull
private final String myEnd;
@NotNull
private final String myText;
public StringInjectionsProcessor(@NotNull String start, @NotNull String end, @NotNull String text) {
myStart = start;
myEnd = end;
myText = text;
}
public void process() {
int currentPos = 0;
while (currentPos < myText.length()) {
final int startInjection = myText.indexOf(myStart, currentPos);
if (startInjection < 0) {
onText(myText.substring(currentPos));
return;
}
int afterStart = startInjection + myStart.length();
int endInjection = InjectorMatchingEndFinder.findMatchingEnd(myStart, myEnd, myText, afterStart);
if (endInjection < 0) {
onInjection(myText.substring(currentPos));
return;
}
if(!onText(myText.substring(currentPos, startInjection))) return;
if(!onInjection(myText.substring(startInjection, endInjection + myEnd.length()))) return;
currentPos = endInjection + myEnd.length();
}
}
protected abstract boolean onText(@NotNull final String text);
protected abstract boolean onInjection(@NotNull final String injection);
}