• R/O
  • SSH
  • HTTPS

mergedoc: Commit


Commit MetaInfo

Revision1250 (tree)
Time2017-01-11 11:43:18
Authorcypher256

Log Message

(empty log message)

Change Summary

Incremental Difference

--- trunk/Pleiades/src/jp/sourceforge/mergedoc/pleiades/generator/AbstractValidator.java (revision 1249)
+++ trunk/Pleiades/src/jp/sourceforge/mergedoc/pleiades/generator/AbstractValidator.java (revision 1250)
@@ -20,6 +20,7 @@
2020 import jp.sourceforge.mergedoc.pleiades.log.Logger.Level;
2121 import jp.sourceforge.mergedoc.pleiades.log.SystemOutLogger;
2222 import jp.sourceforge.mergedoc.pleiades.resource.Files;
23+import jp.sourceforge.mergedoc.pleiades.resource.PatternCache;
2324 import jp.sourceforge.mergedoc.pleiades.resource.Property;
2425 import jp.sourceforge.mergedoc.pleiades.resource.PropertySet;
2526
@@ -283,7 +284,7 @@
283284 */
284285 protected String getIllegalBindParameter(String en, String ja) {
285286
286- Matcher mat = Pattern.compile("\\{[0-9]\\}").matcher(ja);
287+ Matcher mat = PatternCache.get("\\{[0-9]\\}").matcher(ja);
287288 while (mat.find()) {
288289 String group = mat.group();
289290 if (!en.contains(group)) {
--- trunk/Pleiades/src/jp/sourceforge/mergedoc/pleiades/generator/TranslationRule.java (revision 1249)
+++ trunk/Pleiades/src/jp/sourceforge/mergedoc/pleiades/generator/TranslationRule.java (revision 1250)
@@ -18,6 +18,7 @@
1818 import jp.sourceforge.mergedoc.pleiades.log.Logger.Level;
1919 import jp.sourceforge.mergedoc.pleiades.resource.Files;
2020 import jp.sourceforge.mergedoc.pleiades.resource.Mnemonics;
21+import jp.sourceforge.mergedoc.pleiades.resource.PatternCache;
2122 import jp.sourceforge.mergedoc.pleiades.resource.Property;
2223 import jp.sourceforge.mergedoc.pleiades.resource.PropertySet;
2324 import jp.sourceforge.mergedoc.pleiades.resource.TranslationProperty;
@@ -232,7 +233,7 @@
232233 String ok = rep.value;
233234
234235 if (ok.length() > 0 && ja.matches("(?s).*?" + ng + ".*")) {
235- Pattern pat = Pattern.compile(ng);
236+ Pattern pat = PatternCache.get(ng);
236237 Matcher mat = pat.matcher(ja);
237238 StringBuffer sb = new StringBuffer();
238239 while (mat.find()) {mat.appendReplacement(sb, ok);}
--- trunk/Pleiades/src/jp/sourceforge/mergedoc/pleiades/resource/TranslationString.java (revision 1249)
+++ trunk/Pleiades/src/jp/sourceforge/mergedoc/pleiades/resource/TranslationString.java (revision 1250)
@@ -188,7 +188,7 @@
188188 }
189189
190190 // 前後 HTML タグ (閉じタグは / 開始であること、要素名が対の前後同じ数を除去)
191- Pattern tagPat = Pattern.compile("(?s)^(<[^<>]+>\\s*)" + "(.+?)" + "(\\s*</[^<>]+>)$");
191+ Pattern tagPat = PatternCache.get("(?s)^(<[^<>]+>\\s*)" + "(.+?)" + "(\\s*</[^<>]+>)$");
192192 Matcher tagMat = tagPat.matcher(body);
193193 while (tagMat.find()) {
194194
@@ -206,7 +206,7 @@
206206
207207 // head タグ内の style や link タグを除去
208208 if (body.startsWith("<head>")) {
209- Pattern stylePat = Pattern.compile("(?s)^(<head>.+?</head>\\s*)(.+)$");
209+ Pattern stylePat = PatternCache.get("(?s)^(<head>.+?</head>\\s*)(.+)$");
210210 Matcher styleMat = stylePat.matcher(body);
211211 if (styleMat.find()) {
212212 starts.append(styleMat.group(1));
@@ -221,7 +221,7 @@
221221 if (body.startsWith("<") || body.endsWith(">")) {
222222
223223 final String TAGPAT = "((</?(br|p|p\\s+[^<>]+?|img|img\\s+[^<>]+?|ul|ol|li|h[1-5])/?>)*)";
224- Pattern tagPat = Pattern.compile("(?si)^" + TAGPAT + "(\\S.*?\\S)" + TAGPAT + "$");
224+ Pattern tagPat = PatternCache.get("(?si)^" + TAGPAT + "(\\S.*?\\S)" + TAGPAT + "$");
225225 Matcher tagMat = tagPat.matcher(body);
226226 if (tagMat.find()) {
227227 starts.append(tagMat.group(1));
@@ -252,7 +252,7 @@
252252
253253 // Eclipse 固有エラーコードプレフィックス 例) IWAB0001E
254254 if (body.startsWith("I") || body.startsWith("C")) {
255- Pattern pat = Pattern.compile("(?s)^([A-Z]{3,4}\\d{4}[A-Z]{0,1}[\\s:]+)(.+)$");
255+ Pattern pat = PatternCache.get("(?s)^([A-Z]{3,4}\\d{4}[A-Z]{0,1}[\\s:]+)(.+)$");
256256 Matcher mat = pat.matcher(body);
257257 if (mat.find()) {
258258 starts.append(mat.group(1));
@@ -294,7 +294,7 @@
294294
295295 // 前後タグ (後ろ閉じタグでなくも許容、不正タグも含む)
296296 if (body.startsWith("<") || body.endsWith(">")) {
297- Pattern pat = Pattern.compile("(?s)^((<[^<>]+>)*\\s*)" + "([^<>]+?)" + "(\\s*(<[^<>]+>)*)$");
297+ Pattern pat = PatternCache.get("(?s)^((<[^<>]+>)*\\s*)" + "([^<>]+?)" + "(\\s*(<[^<>]+>)*)$");
298298 Matcher mat = pat.matcher(body);
299299 if (mat.find()) {
300300 starts.append(mat.group(1));
@@ -481,7 +481,7 @@
481481 protected boolean trimStartsWithSpace(String s) {
482482
483483 if (body.startsWith(s)) {
484- Pattern pat = Pattern.compile("(?s)^(" + s + "+\\s+)(.+)$");
484+ Pattern pat = PatternCache.get("(?s)^(" + s + "+\\s+)(.+)$");
485485 Matcher mat = pat.matcher(body);
486486 if (mat.find()) {
487487 starts.append(mat.group(1));
@@ -500,7 +500,7 @@
500500 protected boolean trimEndsWithSpace(String s) {
501501
502502 if (body.endsWith(s)) {
503- Pattern pat = Pattern.compile("(?s)^(.+?)(\\s+" + s + "+)$");
503+ Pattern pat = PatternCache.get("(?s)^(.+?)(\\s+" + s + "+)$");
504504 Matcher mat = pat.matcher(body);
505505 if (mat.find()) {
506506 body = mat.group(1);
@@ -656,7 +656,7 @@
656656 }
657657
658658 // 先頭パターン (\u00A0 は nbsp)
659- Pattern pat = Pattern.compile("(?s)^" + "([\\(\\[][^\\{]+[\\)\\]][\\s\u00A0])" + "(.+)$");
659+ Pattern pat = PatternCache.get("(?s)^" + "([\\(\\[][^\\{]+[\\)\\]][\\s\u00A0])" + "(.+)$");
660660 Matcher mat = pat.matcher(value);
661661 boolean isFound = false;
662662 if (mat.find()) {
@@ -664,7 +664,7 @@
664664 }
665665 // 末尾パターン
666666 else {
667- pat = Pattern.compile("(?s)^" + "(.+[\\s\u00A0])" + "([\\(\\[][^\\{]+[\\)\\]][\\.。:]?\\s*)$");
667+ pat = PatternCache.get("(?s)^" + "(.+[\\s\u00A0])" + "([\\(\\[][^\\{]+[\\)\\]][\\.。:]?\\s*)$");
668668 mat = pat.matcher(value);
669669 if (mat.find()) {
670670
@@ -671,7 +671,7 @@
671671 // "(xxx)yyy)" みたいになった場合、g1 を最短一致に切り替え
672672 if (invalidParenthesis(mat.group(2))) {
673673
674- pat = Pattern.compile("(?s)^" + "(.+?[\\s\u00A0])" + "([\\(\\[][^\\{]+[\\)\\]][\\.。:]?\\s*)$");
674+ pat = PatternCache.get("(?s)^" + "(.+?[\\s\u00A0])" + "([\\(\\[][^\\{]+[\\)\\]][\\.。:]?\\s*)$");
675675 mat = pat.matcher(value);
676676 isFound = mat.find();
677677 } else {
@@ -720,7 +720,7 @@
720720 private List<String> splitPunct(String value) {
721721
722722 // 分割パターン
723- Pattern pat = Pattern.compile("(?i)\\s*(" +
723+ Pattern pat = PatternCache.get("(?i)\\s*(" +
724724 // 日本語の句点
725725 "[。:?!]+|" +
726726 // 英語の句点 + br、/b+空白、空白
@@ -732,6 +732,7 @@
732732 // ハイフン (前後空白)
733733 "\\s-\\s" +
734734 ")\\s*");
735+
735736 Matcher mat = pat.matcher(value);
736737 List<String> list = new ArrayList<String>();
737738
--- trunk/Pleiades/src/jp/sourceforge/mergedoc/pleiades/resource/Mnemonics.java (revision 1249)
+++ trunk/Pleiades/src/jp/sourceforge/mergedoc/pleiades/resource/Mnemonics.java (revision 1250)
@@ -90,7 +90,7 @@
9090 }
9191
9292 /**
93- * html 実体参照文字が含まれているか判定します。
93+ * HTML 実体参照文字が含まれているか判定します。
9494 * <p>
9595 * @param value 値
9696 * @return 含まれている場合は true
@@ -97,15 +97,10 @@
9797 */
9898 public static boolean containsHtmlReference(String value) {
9999
100- return
101- value.contains("&lt;") ||
102- value.contains("&gt;") ||
103- value.contains("&amp;") ||
104- value.contains("&quot;") ||
105- value.contains("&yen;") ||
106- value.contains("&nbsp;") ||
107- // IDEA ショートカット参照文字
108- value.contains("&shortcut:");
100+ if (!value.contains(";")) {
101+ return false;
102+ }
103+ return value.matches("(?si).*&[a-z]+;.*"); // &nbsp; など
109104 }
110105
111106 /**
--- trunk/Pleiades/src/jp/sourceforge/mergedoc/pleiades/resource/TranslationNotFoundProperties.java (revision 1249)
+++ trunk/Pleiades/src/jp/sourceforge/mergedoc/pleiades/resource/TranslationNotFoundProperties.java (revision 1250)
@@ -103,7 +103,7 @@
103103 String str = line.replaceAll("\\\\n", "\n");
104104 String prefix = "%REGEX%";
105105 if (str.startsWith(prefix)) {
106- Pattern pattern = Pattern.compile(str.replaceFirst(prefix, ""));
106+ Pattern pattern = PatternCache.get(str.replaceFirst(prefix, ""));
107107 excludPatternSet.add(pattern);
108108 } else {
109109 excludSet.add(str);
--- trunk/Pleiades/src/jp/sourceforge/mergedoc/pleiades/resource/HelpHtmlParser.java (revision 1249)
+++ trunk/Pleiades/src/jp/sourceforge/mergedoc/pleiades/resource/HelpHtmlParser.java (revision 1250)
@@ -97,7 +97,7 @@
9797 "p|div|table|dl|ul|ol|form|address|blockquote|h[1-6]|fieldset|hr|pre";
9898 String blockElementsEx = "li|title|th|td|" + html4StrictBlockElements;
9999 String blockTags = "(?i)(?s)<(|/)(" + blockElementsEx + ")(>|\\s+[^>]*>)";
100- Pattern blockTagPattern = Pattern.compile(blockTags + "(.+?)" + blockTags);
100+ Pattern blockTagPattern = PatternCache.get(blockTags + "(.+?)" + blockTags);
101101 blockTagMatcher = blockTagPattern.matcher(inputString);
102102 outputBuffer = new StringBuffer();
103103 }
@@ -155,7 +155,7 @@
155155 }
156156 outputBuffer.append(inputString.substring(blockTagMatcherStart, blockTagMatcher.start()));
157157 String group123 = blockTagMatcher.group();
158- Pattern pat = Pattern.compile("(?i)(?s)^(<.+?>\\s*)(.+)(\\s*<.+>)$");
158+ Pattern pat = PatternCache.get("(?i)(?s)^(<.+?>\\s*)(.+)(\\s*<.+>)$");
159159 tagMatcher = pat.matcher(group123);
160160 if (!tagMatcher.find()) {
161161 throw new IllegalArgumentException("HTML フラグメント不正:" + group123);
@@ -177,7 +177,7 @@
177177
178178 // 末尾の font 開始タグ
179179 String p = "(?i)(?s)^(.+)(\\s*<font.*>)$";
180- Matcher m = Pattern.compile(p).matcher(f.text);
180+ Matcher m = PatternCache.get(p).matcher(f.text);
181181 if (m.find()) {
182182 f.text = m.group(1);
183183 f.ends = m.group(2) + f.ends;
@@ -184,7 +184,7 @@
184184 }
185185 // 先頭の font、p 終了タグ
186186 p = "(?i)(?s)^(<(p|/font)>\\s*)(.+)$";
187- m = Pattern.compile(p).matcher(f.text);
187+ m = PatternCache.get(p).matcher(f.text);
188188 if (m.find()) {
189189 f.starts += m.group(1);
190190 f.text = m.group(3);
@@ -191,7 +191,7 @@
191191 }
192192 // 先頭の翻訳不要な a タグ (テキストが定数)
193193 p = "(?i)(?s)^((|「)<a\\s+.+>[A-Z1-9_]+?</a>[\\s-」]*)(.+)$";
194- m = Pattern.compile(p).matcher(f.text);
194+ m = PatternCache.get(p).matcher(f.text);
195195 if (m.find()) {
196196 f.starts += m.group(1);
197197 f.text = m.group(3);
@@ -198,7 +198,7 @@
198198 }
199199 // 末尾の翻訳不要な a タグ (テキストが定数)
200200 p = "(?i)(?s)^(.+?)(\\s*(|\\()\\s*<a\\s+.+>[A-Z1-9_]+?</a>\\s*(|\\)))$";
201- m = Pattern.compile(p).matcher(f.text);
201+ m = PatternCache.get(p).matcher(f.text);
202202 if (m.find()) {
203203 f.text = m.group(1);
204204 f.ends = m.group(2) + f.ends;
@@ -206,7 +206,7 @@
206206 // 先頭開始タグ、末尾終了タグのセット (無くなるまで)
207207 while (true) {
208208 p = "(?i)(?s)^(\\s*<[^>]+>\\s*)(.+?)(\\s*</[^>]+>\\s*)$";
209- m = Pattern.compile(p).matcher(f.text);
209+ m = PatternCache.get(p).matcher(f.text);
210210 if (m.find()) {
211211 String m1 = m.group(1);
212212 if (m1.contains("alt=") || m1.contains("title=")) {
@@ -221,7 +221,7 @@
221221 }
222222 // 末尾の br タグ
223223 p = "(?i)(?s)^(.+?)((\\s*<br>\\s*)+)$";
224- m = Pattern.compile(p).matcher(f.text);
224+ m = PatternCache.get(p).matcher(f.text);
225225 if (m.find()) {
226226 f.text = m.group(1);
227227 f.ends = m.group(2) + f.ends;
@@ -228,7 +228,7 @@
228228 }
229229 // 単一タグ、alt、title 属性あり
230230 p = "(?i)(?s)^(<[^>]+?\\s(alt|title)=\")(.+?)(\"[^>]*>\\s*)$";
231- m = Pattern.compile(p).matcher(f.text);
231+ m = PatternCache.get(p).matcher(f.text);
232232 if (m.find()) {
233233 f.starts += m.group(1);
234234 f.text = m.group(3);
@@ -235,7 +235,7 @@
235235 f.ends = m.group(4) + f.ends;
236236
237237 p = "(?i)(?s)^(\"\\s+(alt|title)=\")(.+?)(\".*)$";
238- m = Pattern.compile(p).matcher(f.ends);
238+ m = PatternCache.get(p).matcher(f.ends);
239239 if (m.find()) {
240240 f.ends = "";
241241 fNext = new HtmlFragment(id++);
--- trunk/Pleiades/src/jp/sourceforge/mergedoc/pleiades/resource/PatternCache.java (revision 0)
+++ trunk/Pleiades/src/jp/sourceforge/mergedoc/pleiades/resource/PatternCache.java (revision 1250)
@@ -0,0 +1,64 @@
1+/*
2+ * Copyright (c) 2005- Shinji Kashihara.
3+ * All rights reserved. This program are made available under
4+ * the terms of the Eclipse Public License v1.0 which accompanies
5+ * this distribution, and is available at epl-v10.html.
6+ */
7+package jp.sourceforge.mergedoc.pleiades.resource;
8+
9+import java.util.LinkedHashMap;
10+import java.util.Map;
11+import java.util.regex.Pattern;
12+
13+import jp.sourceforge.mergedoc.pleiades.log.Logger;
14+
15+/**
16+ * 正規表現パターンのキャッシュです。
17+ * <p>
18+ * @author cypher256
19+ */
20+public class PatternCache {
21+
22+ /** ロガー */
23+ private static final Logger log = Logger.getLogger(PatternCache.class);
24+
25+ /** キャッシュ最大容量 */
26+ private static int CAPACITY = 1000;
27+
28+ /** パターン保持する LRU キャッシュ (最大容量に達すると最近最も使われていない要素が削除される) */
29+ private static final Map<String, Pattern> cache = new LinkedHashMap<String, Pattern>(CAPACITY, 0.75f, true) {
30+
31+ @Override
32+ protected boolean removeEldestEntry(Map.Entry<String, Pattern> eldest) {
33+ boolean over = size() > CAPACITY;
34+ if (over) {
35+ log.debug("正規表現キャッシュ最大容量 %d 超過のため古い要素を削除しました。%s",
36+ CAPACITY, eldest.getKey());
37+ }
38+ return over;
39+ }
40+ };
41+
42+ /**
43+ * キャッシュからパターンを取得します。
44+ * 存在しない場合は作成します。
45+ * <p>
46+ * @param regex 正規表現文字列
47+ * @return パターン
48+ */
49+ public static Pattern get(String regex) {
50+
51+ Pattern pat = cache.get(regex);
52+ if (pat == null) {
53+ pat = Pattern.compile(regex);
54+ cache.put(regex, pat);
55+ }
56+ return pat;
57+ }
58+
59+ /**
60+ * インスタンス化できません。
61+ */
62+ private PatternCache() {
63+ }
64+}
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
--- trunk/Pleiades/src/jp/sourceforge/mergedoc/pleiades/aspect/Applications.java (revision 1249)
+++ trunk/Pleiades/src/jp/sourceforge/mergedoc/pleiades/aspect/Applications.java (revision 1250)
@@ -9,11 +9,11 @@
99 import java.io.File;
1010 import java.io.IOException;
1111 import java.util.regex.Matcher;
12-import java.util.regex.Pattern;
1312
1413 import jp.sourceforge.mergedoc.pleiades.Pleiades;
1514 import jp.sourceforge.mergedoc.pleiades.log.Logger;
1615 import jp.sourceforge.mergedoc.pleiades.resource.Files;
16+import jp.sourceforge.mergedoc.pleiades.resource.PatternCache;
1717 import jp.sourceforge.mergedoc.pleiades.resource.PropertySet;
1818
1919 /**
@@ -132,7 +132,7 @@
132132 }
133133 File userConfigPath = null;
134134 if (configArea != null) {
135- Matcher mat = Pattern.compile("^@([\\w\\.]+)(.+)$").matcher(configArea);
135+ Matcher mat = PatternCache.get("^@([\\w\\.]+)(.+)$").matcher(configArea);
136136 if (mat.find()) {
137137 String base = System.getProperty(mat.group(1));
138138 if (base != null) {
--- trunk/Pleiades/src/jp/sourceforge/mergedoc/pleiades/aspect/resource/RegexDictionary.java (revision 1249)
+++ trunk/Pleiades/src/jp/sourceforge/mergedoc/pleiades/aspect/resource/RegexDictionary.java (revision 1250)
@@ -77,7 +77,7 @@
7777 }
7878 file = AbstractTranslationDictionary.validateExists(TRANS_REGEX_THROUGH_PROP);
7979 Set<String> throughSet = new PropertySet(REGEX_THROUGH_LIST_CAPACITY).load(file).keySet();
80- throughPattern = Pattern.compile("(" + StringUtils.join(throughSet, "|") + ")", Pattern.DOTALL);
80+ throughPattern = Pattern.compile("(?s)(" + StringUtils.join(throughSet, "|") + ")");
8181 }
8282
8383 /**
@@ -88,7 +88,7 @@
8888 public void put(String enPattern, String jaReplacement) {
8989
9090 RegexEntry regexEntry = new RegexEntry();
91- regexEntry.pattern = Pattern.compile(enPattern, Pattern.DOTALL);
91+ regexEntry.pattern = Pattern.compile("(?s)" + enPattern);
9292 regexEntry.replacement = jaReplacement;
9393
9494 String firstChar = getFirstChar(enPattern);
--- trunk/Pleiades/srctest/jp/sourceforge/mergedoc/pleiades/aspect/resource/RuntimeTranslationDictionaryTest.java (revision 1249)
+++ trunk/Pleiades/srctest/jp/sourceforge/mergedoc/pleiades/aspect/resource/RuntimeTranslationDictionaryTest.java (revision 1250)
@@ -296,6 +296,11 @@
296296 // HTML 文字実体参照
297297 assertLookup("&nbsp;&nbsp;Label&nbsp;&nbsp;", "&nbsp;&nbsp;ラベル&nbsp;&nbsp;");
298298
299+ // HTML 参照文字 (&productName;)
300+ assertLookup(
301+ "<html>\n<head>\n <link rel=\"stylesheet\" type=\"text/css\" href=\"css/tips.css\">\n</head>\n<body>\n\n\n <p>Did you know that you can close tabs in the editor and the tool windows of &productName; without actually\n using the context menu commands?\n It is enough to point with your mouse cursor to a tab to be closed, and click the middle mouse button, or just\n use the <span class=\"shortcut\">Shift+click</span> combination.</p>\n\n\n</body>\n</html>",
302+ "<html> <head> <link rel=\"stylesheet\" type=\"text/css\" href=\"css/tips.css\"> </head> <body><p>コンテキスト・メニューのコマンドを実際に使用しなくても &productName; のエディターとツール・ウィンドウのタブを閉じることができることを知っていますか? 閉じたいタブにマウス・カーソルを合わせてマウスの中ボタンをクリックするか <span class=\"shortcut\">Shift+click</span> の組み合わせを使用するだけで十分です。</p></body> </html>");
303+
299304 // 先頭空白
300305 assertLookup(" Label", " ラベル");
301306
@@ -415,11 +420,5 @@
415420 assertLookup(
416421 "<html>\n<head>\n <link rel=\"stylesheet\" type=\"text/css\" href=\"css/tips.css\">\n</head>\n<body>\n\n\n <p>Using <span class=\"shortcut\">&shortcut:Generate;</span> (<span class=\"control\">Code | Generate</span>)\n in the editor, you can easily generate getter and setter methods for any fields of your class.</p>\n <p class=\"image\"><img src=\"images/alt_insert_in_editor.png\"></p>\n\n\n\n</body>\n</html>",
417422 "<html> <head> <link rel=\"stylesheet\" type=\"text/css\" href=\"css/tips.css\"> </head> <body><p>エディターで <span class=\"shortcut\">&shortcut:Generate;</span> (<span class=\"control\">コード | 生成</span>) を使用すると、クラスの任意のフィールドの getter および setter メソッドを簡単に生成できます.</p><p class=\"image\"><img src=\"images/alt_insert_in_editor.png\"></p></body> </html>");
418-
419- // xxxxx
420- assertLookup(
421-// "<html>\n<head>\n <link rel=\"stylesheet\" type=\"text/css\" href=\"css/tips.css\">\n</head>\n<body>\n\n\n <p>Did you know that you can close tabs in the editor and the tool windows of &productName; without actually\n using the context menu commands?\n It is enough to point with your mouse cursor to a tab to be closed, and click the middle mouse button, or just\n use the <span class=\"shortcut\">Shift+click</span> combination.</p>\n\n\n</body>\n</html>",
422- "Did you know that you can close tabs in the editor and the tool windows of &productName; without actually using the context menu commands",
423- "");
424423 }
425424 }
--- trunk/Pleiades/readme/readme_pleiades_changes.txt (revision 1249)
+++ trunk/Pleiades/readme/readme_pleiades_changes.txt (revision 1250)
@@ -1,5 +1,6 @@
11 1.7.14 - 2017.xx.xx
22
3+・高速化
34 ・一般的な翻訳と乖離している翻訳ルール (元 IBM ルール) を変更
45  コード・コンプリート -> コード補完
56  プロポーザル -> 候補
--- trunk/Pleiades/build.xml (revision 1249)
+++ trunk/Pleiades/build.xml (revision 1250)
@@ -474,7 +474,7 @@
474474 </move>
475475 <delete dir="${plugins.dir}/plugins/"/>
476476
477- <echo>${app.dir}/${exe.path}</echo>
477+ <echo>${exe.path}</echo>
478478 <exec executable="${exe.path}" spawn="true"/>
479479
480480 </target>
Show on old repository browser