;
api: CodeStatsAPI;
+ context: ExtensionContext;
- constructor(api: CodeStatsAPI) {
+ constructor(context: ExtensionContext, api: CodeStatsAPI) {
+ this.context = context;
this.api = api;
}
@@ -26,12 +30,12 @@ export class ProfileHtmlProvider implements TextDocumentContentProvider {
}
function getNextLevelXp(level: number): number {
- return Math.pow(Math.ceil((level+1)/LEVEL_FACTOR) ,2);
+ return Math.pow(Math.ceil((level + 1) / LEVEL_FACTOR), 2);
}
function getLevelProgress(xp: number): number {
let level = getLevel(xp);
- let curLevelXp = getNextLevelXp(level-1);
+ let curLevelXp = getNextLevelXp(level - 1);
let nextLevelXp = getNextLevelXp(level);
let haveXp = xp - curLevelXp;
@@ -43,74 +47,34 @@ export class ProfileHtmlProvider implements TextDocumentContentProvider {
function getLanguages(languages: any): string {
let ret = '';
- for( let lang in languages )
- {
- ret+=`${lang}${languages[lang]["xps"]}
`;
+ for (let lang in languages) {
+ ret += `${lang}${languages[lang]["xps"]}
`;
}
return ret;
}
function getHeader(profile: any): string {
-
- let userName = profile["user"];
- let totalXp = profile["total_xp"];
- let newXp = profile["new_xp"];
- let currentLevel = getLevel(totalXp);
- return ` ${userName}'s Profile Level ${currentLevel} (${totalXp} XP) ${newXp > 0 ? '(+' + newXp +')' :'' }
`;
+ let userName = profile["user"];
+ let totalXp = profile["total_xp"];
+ let newXp = profile["new_xp"];
+ let currentLevel = getLevel(totalXp);
+
+ return ` ${userName}'s Profile Level ${currentLevel} (${totalXp} XP) ${newXp > 0 ? '(+' + newXp + ')' : ''}
`;
}
- return this.api.getProfile().then( profile => {
-
- console.log(profile);
+ return this.api.getProfile().then(profile => {
+ //console.log(profile);
return `
-
+
+
${getHeader(profile)}
${getLanguages(profile["languages"])}
`;
- });
+ });
}
}
diff --git a/src/xp-counter.ts b/src/xp-counter.ts
index 17c4f03..9d7dfc0 100644
--- a/src/xp-counter.ts
+++ b/src/xp-counter.ts
@@ -13,7 +13,8 @@ import {
StatusBarAlignment,
TextDocumentChangeEvent,
Range,
- WorkspaceConfiguration
+ WorkspaceConfiguration,
+ ExtensionContext
} from "vscode";
import { Pulse } from "./pulse";
import { CodeStatsAPI } from "./code-stats-api";
@@ -32,7 +33,7 @@ export class XpCounter {
private UPDATE_DELAY = 10000;
- constructor() {
+ constructor(context: ExtensionContext) {
this.pulse = new Pulse();
/* // print out supported language names
@@ -52,7 +53,7 @@ export class XpCounter {
this.statusBarItem.command = "code-stats.profile";
}
- let provider = new ProfileHtmlProvider(this.api);
+ let provider = new ProfileHtmlProvider(context, this.api);
let registration = workspace.registerTextDocumentContentProvider('code-stats', provider);
diff --git a/test.html b/test.html
new file mode 100644
index 0000000..3c3b12b
--- /dev/null
+++ b/test.html
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file