Skip to content

Commit 7618cb8

Browse files
committed
improve special value range handling
1 parent da0f370 commit 7618cb8

File tree

1 file changed

+27
-24
lines changed

1 file changed

+27
-24
lines changed

typescript/src/specialCommands/handle.ts

Lines changed: 27 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -93,31 +93,34 @@ export default (
9393
}
9494
}
9595

96-
ts.findAncestor(node, (n) => {
97-
if (ts.isVariableDeclaration(n) && n.initializer && position < n.initializer.pos) {
98-
targetNode = n.initializer
99-
return true
100-
}
101-
if (ts.isCallExpression(n) && position < n.expression.end) {
102-
const pos = n.expression.end+1
103-
targetNode = [pos, pos]
104-
return true
105-
}
106-
if (ts.isArrowFunction(n) && position < n.equalsGreaterThanToken.end) {
107-
targetNode = n.body
108-
return true
109-
}
110-
if ((ts.isForStatement(n) || ts.isForOfStatement(n) || ts.isForInStatement(n) || ts.isWhileStatement(n)) && position < n.statement.pos) {
111-
targetNode = n.statement
112-
return true
113-
}
114-
if ((ts.isIfStatement(n)) && position < n.thenStatement.pos) {
115-
targetNode = n.thenStatement
116-
return true
117-
}
118-
return false
119-
})
96+
if(!targetNode) {
97+
ts.findAncestor(node, (n) => {
98+
if (ts.isVariableDeclaration(n) && n.initializer && position < n.initializer.pos) {
99+
targetNode = n.initializer
100+
return true
101+
}
102+
if (ts.isCallExpression(n) && position < n.expression.end) {
103+
const pos = n.expression.end+1
104+
targetNode = [pos, pos]
105+
return true
106+
}
107+
if (ts.isArrowFunction(n) && position < n.body.pos) {
108+
targetNode = n.body
109+
return true
110+
}
111+
if ((ts.isForStatement(n) || ts.isForOfStatement(n) || ts.isForInStatement(n) || ts.isWhileStatement(n)) && position < n.statement.pos) {
112+
targetNode = n.statement
113+
return true
114+
}
115+
if ((ts.isIfStatement(n)) && position < n.thenStatement.pos) {
116+
targetNode = n.thenStatement
117+
return true
118+
}
119+
return false
120+
})
121+
}
120122
if (targetNode && !Array.isArray(targetNode)) {
123+
// maybe additional node handling in future
121124
}
122125
if (targetNode) {
123126
return {

0 commit comments

Comments
 (0)