Mega Code Archive

 
Categories / Java / Swing JFC
 

Get Leading White Space Width

/*  * StandardUtilities.java - Various miscallaneous utility functions  * :tabSize=8:indentSize=8:noTabs=false:  * :folding=explicit:collapseFolds=1:  *  * Copyright (C) 1999, 2006 Matthieu Casanova, Slava Pestov  * Portions copyright (C) 2000 Richard S. Hall  * Portions copyright (C) 2001 Dirk Moebius  *  * This program is free software; you can redistribute it and/or  * modify it under the terms of the GNU General Public License  * as published by the Free Software Foundation; either version 2  * of the License, or any later version.  *  * This program is distributed in the hope that it will be useful,  * but WITHOUT ANY WARRANTY; without even the implied warranty of  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  * GNU General Public License for more details.  *  * You should have received a copy of the GNU General Public License  * along with this program; if not, write to the Free Software  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.  */ //{{{ Imports import javax.swing.text.Segment; import java.util.Comparator; import java.util.Stack; //}}} /**  * Several tools that depends on JDK only.  *  * @author Matthieu Casanova  * @version $Id: StandardUtilities.java 12884 2008-06-23 18:17:08Z kpouer $  * @since 4.3pre5  */ public class StandardUtilities {   //{{{ getLeadingWhiteSpaceWidth() method   /**    * Returns the width of the leading white space in the specified    * string.    * @param str The string    * @param tabSize The tab size    */   public static int getLeadingWhiteSpaceWidth(String str, int tabSize)   {     return getLeadingWhiteSpaceWidth((CharSequence)str, tabSize);   } //}}}   //{{{ getLeadingWhiteSpaceWidth() method   /**    * Returns the width of the leading white space in the specified    * string.    * @param str The string    * @param tabSize The tab size    * @since jEdit 4.3pre15    */   public static int getLeadingWhiteSpaceWidth(CharSequence str, int tabSize)   {     int whitespace = 0; loop:   for(int i = 0; i < str.length(); i++)     {       switch(str.charAt(i))       {         case ' ':           whitespace++;           break;         case '\t':           whitespace += tabSize -             whitespace % tabSize;           break;         default:           break loop;       }     }     return whitespace;   } //}}} }