<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
- <component name="PropertiesComponent">{
- "keyToString": {
- "WebServerToolWindowFactoryState": "true",
- "WebServerToolWindowPanel.toolwindow.highlight.mappings": "true",
- "WebServerToolWindowPanel.toolwindow.highlight.symlinks": "true",
- "WebServerToolWindowPanel.toolwindow.show.date": "false",
- "WebServerToolWindowPanel.toolwindow.show.permissions": "false",
- "WebServerToolWindowPanel.toolwindow.show.size": "false",
- "git-widget-placeholder": "master",
- "ignore.virus.scanning.warn.message": "true",
- "last_opened_file_path": "D:/Works/cubist_pdf/resources/tools/fwstk",
- "node.js.detected.package.eslint": "true",
- "node.js.detected.package.tslint": "true",
- "node.js.selected.package.eslint": "(autodetect)",
- "node.js.selected.package.tslint": "(autodetect)",
- "project.structure.last.edited": "SDKs",
- "project.structure.proportion": "0.15",
- "project.structure.side.proportion": "0.2",
- "ruby.rails.projectView.checked": "true",
- "settings.editor.selected.configurable": "preferences.lookFeel",
- "vue.rearranger.settings.migration": "true"
+ <component name="PropertiesComponent"><![CDATA[{
+ "keyToString": {
+ "RunOnceActivity.ShowReadmeOnStart": "true",
+ "WebServerToolWindowFactoryState": "true",
+ "WebServerToolWindowPanel.toolwindow.highlight.mappings": "true",
+ "WebServerToolWindowPanel.toolwindow.highlight.symlinks": "true",
+ "WebServerToolWindowPanel.toolwindow.show.date": "false",
+ "WebServerToolWindowPanel.toolwindow.show.permissions": "false",
+ "WebServerToolWindowPanel.toolwindow.show.size": "false",
+ "git-widget-placeholder": "master",
+ "ignore.virus.scanning.warn.message": "true",
+ "last_opened_file_path": "D:/Works/cubist_pdf/resources/tools/fwstk",
+ "node.js.detected.package.eslint": "true",
+ "node.js.detected.package.tslint": "true",
+ "node.js.selected.package.eslint": "(autodetect)",
+ "node.js.selected.package.tslint": "(autodetect)",
+ "project.structure.last.edited": "SDKs",
+ "project.structure.proportion": "0.15",
+ "project.structure.side.proportion": "0.2",
+ "ruby.rails.projectView.checked": "true",
+ "settings.editor.selected.configurable": "preferences.lookFeel",
+ "vue.rearranger.settings.migration": "true"
}
-}</component>
+}]]></component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="H:\Works\cubeExtranet\fluidbook\tools\fwstk\lib" />
<workItem from="1692974658841" duration="8000" />
<workItem from="1692974700537" duration="688000" />
<workItem from="1694090487471" duration="6051000" />
+ <workItem from="1694157597994" duration="9552000" />
</task>
<task id="LOCAL-00001" summary="wip #1111 @0.5">
<created>1487172253077</created>
<MESSAGE value="wip #5410" />
<option name="LAST_COMMIT_MESSAGE" value="wip #5410" />
</component>
- <component name="XDebuggerManager">
- <breakpoint-manager>
- <breakpoints>
- <line-breakpoint enabled="true" type="java-line">
- <url>file://$PROJECT_DIR$/src/com/fluidbook/fwstk/layout/Word.java</url>
- <line>168</line>
- <option name="timeStamp" value="1" />
- </line-breakpoint>
- </breakpoints>
- </breakpoint-manager>
- </component>
<component name="antWorkspaceConfiguration">
<option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
<option name="FILTER_TARGETS" value="false" />
public class StringUtil {
- public static String removeAccents(String in) {
- return AsciiUtils.convertNonAscii(in);
- }
-
- public static String condenseWhite(String in) {
- return in.replaceAll("\\p{Space}++", " ");
- }
-
- public static String removePoints(String in) {
- return StringUtil.removePoints(in, "");
- }
-
- public static String separateLigatures(String in) {
- in = in.replaceAll("\u00C6", "AE");
- in = in.replaceAll("\u00E6", "ae");
- in = in.replaceAll("\u0152", "OE");
- in = in.replaceAll("\u0153", "oe");
- in = in.replaceAll("\u0132", "IJ");
- in = in.replaceAll("\u0133", "ij");
- in = in.replaceAll("\ufb00", "ff");
- in = in.replaceAll("\ufb01", "fi");
- in = in.replaceAll("\ufb02", "fl");
- in = in.replaceAll("\ufb03", "ffi");
- in = in.replaceAll("\ufb04", "ffl");
-
- return in;
- }
-
- public static String removePoints(String in, String ignore) {
- String res = in.replaceAll(
- separatorsRegexp(ignore),
- " ");
-
- return res;
- }
-
- public static String separatorsRegexp(String ignore) {
- if (ignore != "") {
- String ig = "";
- for (int i = 0; i < ignore.length(); i++) {
- ig += "\\" + ignore.substring(i, i + 1);
- }
- ignore = "&&[^" + ig + "]";
- }
- return "[\\u2000-\\u20ff\\u2122\\x21-\\x2f\\x3a-\\x3f\\x5b-\\x60\\x7b-\\xa0\\xaa-\\xbf\\ufffd" + ignore + "]";
- }
-
- public static String normalizeWhite(String in) {
- String res = in.replaceAll(
- "[\\u2000-\\u20ff\\ufffd]",
- " ");
-
- return res;
- }
-
- public static String removeControl(String in) {
- return in.replaceAll("\\p{Cntrl}", " ");
- }
-
- public static String removeTags(String in) {
- in = in.replaceAll("<.+>", " ");
- return condenseWhite(in);
- }
-
- public static String trim(String str) {
- return str.trim();
- }
-
- public static String trim(String str, String[] chars) {
-
- Boolean suite = false;
- for (String c : chars) {
- if (str.contains(c)) {
- suite = true;
- break;
- }
- }
- if (!suite) {
- return str;
- }
-
- str = ltrim(str, chars);
- str = rtrim(str, chars);
-
- return str;
- }
-
- public static String rtrim(String str, String[] charsToTrim) {
- int length = str.length() - 1;
-
- rightloop:
- for (; length >= 0; length--) {
- for (String c : charsToTrim) {
- if (str.indexOf(c) == length) {
- continue rightloop;
- }
- }
- break;
- }
-
- str = str.substring(0, length + 1);
- return str;
- }
-
- public static String[] splitStr(String str) {
-
- byte[] chars = str.getBytes();
- String[] res = new String[chars.length];
- for (int i = 0; i < chars.length; i++) {
- res[i] = String.valueOf((char) chars[i]);
- }
-
- return res;
- }
-
- public static String ltrim(String str, String[] charsToTrim) {
- int startIndex = 0;
- leftloop:
- for (startIndex = 0; startIndex <= str.length(); startIndex++) {
- for (String c : charsToTrim) {
- if (str.indexOf(c) == startIndex) {
- continue leftloop;
- }
- }
- break;
- }
- str = str.substring(startIndex);
- return str;
-
- }
+ public static String removeAccents(String in) {
+ return AsciiUtils.convertNonAscii(in);
+ }
+
+ public static String condenseWhite(String in) {
+ return in.replaceAll("\\p{Space}++", " ");
+ }
+
+ public static String removePoints(String in) {
+ return StringUtil.removePoints(in, "");
+ }
+
+ public static String separateLigatures(String in) {
+ in = in.replaceAll("\u00C6", "AE");
+ in = in.replaceAll("\u00E6", "ae");
+ in = in.replaceAll("\u0152", "OE");
+ in = in.replaceAll("\u0153", "oe");
+ in = in.replaceAll("\u0132", "IJ");
+ in = in.replaceAll("\u0133", "ij");
+ in = in.replaceAll("\ufb00", "ff");
+ in = in.replaceAll("\ufb01", "fi");
+ in = in.replaceAll("\ufb02", "fl");
+ in = in.replaceAll("\ufb03", "ffi");
+ in = in.replaceAll("\ufb04", "ffl");
+
+ return in;
+ }
+
+ public static String removePoints(String in, String ignore) {
+ String res = in.replaceAll(
+ punctuationRegexp(ignore),
+ " ");
+ return res;
+ }
+
+ public static String punctuationRegexp(String ignore) {
+ if (ignore != "") {
+ String ig = "";
+ for (int i = 0; i < ignore.length(); i++) {
+ ig += "\\" + ignore.substring(i, i + 1);
+ }
+ ignore = "&&[^" + ig + "]";
+ }
+ String common = "-\\/_";
+ String zh = "』『「」!?。。。」﹂”』’》)]}〕〗〙〛〉】"#$%&'()*+,-/:;<=>@[\]^_`{|}~⦅⦆「」、 、〃〈〉《》【】〕〔〗〖〙〘〛〚〜〞〝〟〰〾〿–—‘’“‛”„‟…‧﹏﹑﹔·〇一。";
+ return "[" + common + zh + "\\u2000-\\u20ff\\u2122\\x21-\\x2f\\x3a-\\x3f\\x5b-\\x60\\x7b-\\xa0\\xaa-\\xbf\\ufffd" + ignore + "]";
+ }
+
+ public static String separatorsRegexp(String ignore) {
+ if (ignore != "") {
+ String ig = "";
+ for (int i = 0; i < ignore.length(); i++) {
+ ig += "\\" + ignore.substring(i, i + 1);
+ }
+ ignore = "&&[^" + ig + "]";
+ }
+ return "[\\u2000-\\u20ff\\u2122\\x21-\\x2f\\x3a-\\x3f\\x5b-\\x60\\x7b-\\xa0\\xaa-\\xbf\\ufffd" + ignore + "]";
+ }
+
+ public static String normalizeWhite(String in) {
+ String res = in.replaceAll(
+ "[\\u2000-\\u20ff\\ufffd]",
+ " ");
+
+ return res;
+ }
+
+ public static String removeSpaces(String in) {
+ String res = in.replaceAll(
+ "[\\u2000-\\u20ff\\ufffd]",
+ "");
+
+ return res;
+ }
+
+ public static String removeControl(String in) {
+ return in.replaceAll("\\p{Cntrl}", " ");
+ }
+
+ public static String removeTags(String in) {
+ in = in.replaceAll("<.+>", " ");
+ return condenseWhite(in);
+ }
+
+ public static String trim(String str) {
+ return str.trim();
+ }
+
+ public static String trim(String str, String[] chars) {
+
+ Boolean suite = false;
+ for (String c : chars) {
+ if (str.contains(c)) {
+ suite = true;
+ break;
+ }
+ }
+ if (!suite) {
+ return str;
+ }
+
+ str = ltrim(str, chars);
+ str = rtrim(str, chars);
+
+ return str;
+ }
+
+ public static String rtrim(String str, String[] charsToTrim) {
+ int length = str.length() - 1;
+
+ rightloop:
+ for (; length >= 0; length--) {
+ for (String c : charsToTrim) {
+ if (str.indexOf(c) == length) {
+ continue rightloop;
+ }
+ }
+ break;
+ }
+
+ str = str.substring(0, length + 1);
+ return str;
+ }
+
+ public static String[] splitStr(String str) {
+
+ byte[] chars = str.getBytes();
+ String[] res = new String[chars.length];
+ for (int i = 0; i < chars.length; i++) {
+ res[i] = String.valueOf((char) chars[i]);
+ }
+
+ return res;
+ }
+
+ public static String ltrim(String str, String[] charsToTrim) {
+ int startIndex = 0;
+ leftloop:
+ for (startIndex = 0; startIndex <= str.length(); startIndex++) {
+ for (String c : charsToTrim) {
+ if (str.indexOf(c) == startIndex) {
+ continue leftloop;
+ }
+ }
+ break;
+ }
+ str = str.substring(startIndex);
+ return str;
+
+ }
}