All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.google.common.css.SourceCodeIndicator Maven / Gradle / Ivy

Go to download

Closure Stylesheets is an extension to CSS that adds variables, functions, conditionals, and mixins to standard CSS. The tool also supports minification, linting, RTL flipping, and CSS class renaming.

There is a newer version: 1.8.0
Show newest version
/*
 * Copyright 2008 Google Inc.
 *
 * 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.google.common.css;

import com.google.common.base.Preconditions;

import javax.annotation.Nullable;

/**
 * Represents a line of source code, together with an associated "indicator"
 * line. If the indicator line is displayed immediately after (or before) the
 * source code line it should have the effect of visually indicating a portion
 * of the source code line. Some examples:
 * 
 * int i = 0.1;
 * ^^^     ^^^
 * 
*
 *     vvvvvvv
 * int i = 0.1;
 * 
*

Note that the indicator line is not required to indicate continuous * portions of the code line. However, in our application it is only going to be * used for continuous portions. * *

Support for special characters (such as tab, backspace and end-of-line) in * the code line is the responsibility of the class that displays the two lines. * The indicator in this class assumes a one-to-one mapping of code characters * to display characters and to indicator line characters. The meaning of "line" * is left to the users of this class; it does not enforce that its "lines" * contain no newline characters. In our application we should make sure we * don't pass newline characters to this class. * *

The indicator line is not required to have the same length as the code * line. This means that trailing whitespace can be absent. However, uses such * as: *

 * int i = 0;
 * ____#####_
 * 
*

are considered valid. Note that the indicator line contains no whitespace and * that both lines are the same size. As long as the visual indication is * achieved, the indicator line is unconstrained. * *

The indicator line might be absent. If that is the case, * {@link #getIndicatorLine()} returns {@code null}. */ public class SourceCodeIndicator { private final String codeLine; private final String indicatorLine; /** * Constructs a SourceCodeIndicator. * * @param codeLine the line of source code to be displayed * @param indicatorLine The line that indicates a portion of the source code * line. Can be {@code null} if this information is not available or not * required for display. */ SourceCodeIndicator(String codeLine, @Nullable String indicatorLine) { Preconditions.checkNotNull(codeLine); this.codeLine = codeLine; this.indicatorLine = indicatorLine; } /** * @return the code line */ public String getCodeLine() { return codeLine; } /** * @return the indicator line */ public String getIndicatorLine() { return indicatorLine; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy