| 173 | } |
| 174 | |
| 175 | function trackChange(ts, doc, change) { |
| 176 | var data = findDoc(ts, doc); |
| 177 | |
| 178 | var argHints = ts.cachedArgHints; |
| 179 | if (argHints && argHints.doc == doc && cmpPos(argHints.start, change.to) <= 0) |
| 180 | ts.cachedArgHints = null; |
| 181 | |
| 182 | var changed = data.changed; |
| 183 | if (changed == null) |
| 184 | data.changed = changed = {from: change.from.line, to: change.from.line}; |
| 185 | var end = change.from.line + (change.text.length - 1); |
| 186 | if (change.from.line < changed.to) changed.to = changed.to - (change.to.line - end); |
| 187 | if (end >= changed.to) changed.to = end + 1; |
| 188 | if (changed.from > change.from.line) changed.from = change.from.line; |
| 189 | |
| 190 | if (doc.lineCount() > bigDoc && change.to - changed.from > 100) setTimeout(function() { |
| 191 | if (data.changed && data.changed.to - data.changed.from > 100) sendDoc(ts, data); |
| 192 | }, 200); |
| 193 | } |
| 194 | |
| 195 | function sendDoc(ts, doc) { |
| 196 | ts.server.request({files: [{type: "full", name: doc.name, text: docValue(ts, doc)}]}, function(error) { |