From 7bdac227a169479f19772c30782cebdca67d626a Mon Sep 17 00:00:00 2001 From: Paul Ryan Date: Thu, 25 May 2017 13:32:58 +0100 Subject: [PATCH] catch reformatting of text --- src/xp-counter.ts | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/xp-counter.ts b/src/xp-counter.ts index ef18226..c25d561 100644 --- a/src/xp-counter.ts +++ b/src/xp-counter.ts @@ -51,14 +51,24 @@ export class XpCounter { private onTextDocumentChanged(event: TextDocumentChangeEvent): void { let changeCount: number = 0; + let containsLineBreaks: boolean = false; for (let change of event.contentChanges) { - changeCount += this.determineChangeCount(change.range); + if (change.text.indexOf("\n") !== -1) { + //if line breaks found in text, assume it is a reformatting of a text or JSON object + containsLineBreaks = true; + } else { + changeCount += this.determineChangeCount(change.range); + } + } + if (containsLineBreaks) { + this.updateXpCount(event.document, 1); + } else { + this.updateXpCount(event.document, changeCount); } - this.updateXpCount(event.document, changeCount); } private determineChangeCount(range: Range): number { - if (range === null || range === undefined ) { + if (range === null || range === undefined) { return 0; } if (range.start.line === range.end.line) {