From 351f306cd9dd7a0c1320ec29c0f4de05bb2f1bd3 Mon Sep 17 00:00:00 2001
From: syuilo <syuilotan@yahoo.co.jp>
Date: Thu, 9 Feb 2017 22:09:44 +0900
Subject: [PATCH] #140

---
 src/common/text/elements/code.js | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/src/common/text/elements/code.js b/src/common/text/elements/code.js
index 4a3ba9253..958bbe8d8 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];