summaryrefslogtreecommitdiff
path: root/src/common/text/elements
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2017-02-09 22:09:44 +0900
committersyuilo <syuilotan@yahoo.co.jp>2017-02-09 22:09:44 +0900
commit351f306cd9dd7a0c1320ec29c0f4de05bb2f1bd3 (patch)
tree82dc858925a230111136995d3297382c61c594bd /src/common/text/elements
parentFix bug (diff)
downloadsharkey-351f306cd9dd7a0c1320ec29c0f4de05bb2f1bd3.tar.gz
sharkey-351f306cd9dd7a0c1320ec29c0f4de05bb2f1bd3.tar.bz2
sharkey-351f306cd9dd7a0c1320ec29c0f4de05bb2f1bd3.zip
#140
Diffstat (limited to 'src/common/text/elements')
-rw-r--r--src/common/text/elements/code.js16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/common/text/elements/code.js b/src/common/text/elements/code.js
index 4a3ba92530..958bbe8d87 100644
--- a/src/common/text/elements/code.js
+++ b/src/common/text/elements/code.js
@@ -173,11 +173,13 @@ const elements = [
const match = varDef.filter(v => code.substr(0, v.length + 1) == v + ' ')[0];
if (match) {
- const bar = code.substr(match.length + 1).match(/^[a-zA-Z0-9_-]+/);
- if (bar) {
- if (!keywords.some(k => k == bar)) {
- vars.push(bar[0]);
- }
+ const bars = code.substr(match.length + 1).match(/^[a-zA-Z0-9_\-,\s]+/);
+ if (bars) {
+ bars[0].replace(/,/g, ' ').split(' ').filter(x => x != '').forEach(bar => {
+ if (!keywords.some(k => k == bar)) {
+ vars.push(bar);
+ }
+ });
}
}
@@ -187,7 +189,9 @@ const elements = [
// vars
(code, i, source, vars) => {
const prev = source[i - 1];
- if (prev && /[a-zA-Z]/.test(prev)) return null;
+ // プロパティは変数と認識させないために、
+ // 前に . や > (PHPなどではプロパティに -> でアクセスするため) が無いかチェック
+ if (prev && /[a-zA-Z\.>]/.test(prev)) return null;
const match = vars.sort((a, b) => b.length - a.length)
.filter(v => code.substr(0, v.length) == v)[0];