mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
js: simplify line separators in template strings intentions
GitOrigin-RevId: aff6931b28fe45f1ac4225c9165af0026cf9a254
This commit is contained in:
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);
|
||||
}
|
||||
Reference in New Issue
Block a user