mirror of
https://gitlab.com/aviortheking/code-stats-vscode.git
synced 2025-04-22 10:52:13 +00:00
Done
This commit is contained in:
parent
2343164b29
commit
e8421926dc
@ -4,19 +4,16 @@
|
|||||||
--color-primary: #E3C23D;
|
--color-primary: #E3C23D;
|
||||||
--color-secondary: #5D5535;
|
--color-secondary: #5D5535;
|
||||||
--color-bar-background: #303030;
|
--color-bar-background: #303030;
|
||||||
}
|
--color-bar-border: #424242;
|
||||||
|
|
||||||
.vscode-dark1 {
|
|
||||||
--color-language: #ddca7e;
|
|
||||||
--color-primary: #dcc97e;
|
|
||||||
--color-secondary: #318245;
|
|
||||||
--color-bar-background: #303030;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Light theme color palette */
|
/* Light theme color palette */
|
||||||
.vscode-light {
|
.vscode-light {
|
||||||
--color-language: blue;
|
--color-language: #1B2334;
|
||||||
--color-primary: #00ca7e;
|
--color-primary: #5D78B3;
|
||||||
|
--color-secondary: #354567;
|
||||||
|
--color-bar-background: #939DB3;
|
||||||
|
--color-bar-border: #697080;
|
||||||
}
|
}
|
||||||
|
|
||||||
.profile {
|
.profile {
|
||||||
@ -43,13 +40,11 @@ sup {
|
|||||||
.language-progress .tooltiptext {
|
.language-progress .tooltiptext {
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
width: 120px;
|
width: 120px;
|
||||||
background-color: var(--color-primary);
|
background-color: var(--color-bar-border);
|
||||||
color: black;
|
color: var(--color-language);
|
||||||
text-align: center;
|
text-align: center;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
padding: 5px 0;
|
padding: 5px 0;
|
||||||
|
|
||||||
/* Position the tooltip */
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
}
|
}
|
||||||
@ -112,9 +107,7 @@ circle.oldxp {
|
|||||||
background-color: var(--color-bar-background);
|
background-color: var(--color-bar-background);
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
border: solid 1px;
|
border: solid 1px;
|
||||||
border-color: #424242;
|
border-color: var(--color-bar-border);
|
||||||
-webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1);
|
|
||||||
box-shadow: inset 0 1px 2px rgba(0,0,0,.1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.progress-bar {
|
.progress-bar {
|
||||||
@ -124,10 +117,7 @@ circle.oldxp {
|
|||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
line-height: 20px;
|
line-height: 20px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
||||||
background-color: var(--color-secondary);
|
background-color: var(--color-secondary);
|
||||||
-webkit-box-shadow: inset 0 -1px 0 rgba(0,0,0,.15);
|
|
||||||
box-shadow: inset 0 -1px 0 rgba(0,0,0,.15);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.progress-bar-new {
|
.progress-bar-new {
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
<span class="tooltiptext">
|
<span class="tooltiptext">
|
||||||
<strong><%=languages[l].xp %> xp</strong>
|
<strong><%=languages[l].xp %> xp</strong>
|
||||||
<% if( languages[l].new_xp > 0 ) { %>
|
<% if( languages[l].new_xp > 0 ) { %>
|
||||||
<sup style="color:black">+<%= languages[l].new_xp %></sup>
|
<sup>+<%= languages[l].new_xp %></sup>
|
||||||
<% } %>
|
<% } %>
|
||||||
</span>
|
</span>
|
||||||
<svg viewBox="0 0 100 100">
|
<svg viewBox="0 0 100 100">
|
||||||
|
@ -10,6 +10,11 @@ export class CodeStatsAPI {
|
|||||||
private axios = null;
|
private axios = null;
|
||||||
|
|
||||||
constructor(apiKey: string, apiURL: string, userName: string) {
|
constructor(apiKey: string, apiURL: string, userName: string) {
|
||||||
|
this.updateSettings(apiKey, apiURL, userName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public updateSettings( apiKey: string, apiURL: string, userName: string) {
|
||||||
|
|
||||||
this.API_KEY = apiKey;
|
this.API_KEY = apiKey;
|
||||||
this.UPDATE_URL = apiURL;
|
this.UPDATE_URL = apiURL;
|
||||||
this.USER_NAME = userName;
|
this.USER_NAME = userName;
|
||||||
@ -71,6 +76,7 @@ export class CodeStatsAPI {
|
|||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
|
return null;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,9 @@ export class ProfileProvider implements TextDocumentContentProvider {
|
|||||||
|
|
||||||
provideTextDocumentContent(uri: Uri, token: CancellationToken): string | Thenable<string> {
|
provideTextDocumentContent(uri: Uri, token: CancellationToken): string | Thenable<string> {
|
||||||
|
|
||||||
|
if( token.isCancellationRequested )
|
||||||
|
return;
|
||||||
|
|
||||||
const LEVEL_FACTOR = 0.025;
|
const LEVEL_FACTOR = 0.025;
|
||||||
|
|
||||||
function getLevel(xp: number): number {
|
function getLevel(xp: number): number {
|
||||||
@ -66,6 +69,11 @@ export class ProfileProvider implements TextDocumentContentProvider {
|
|||||||
|
|
||||||
return this.api.getProfile().then(profile => {
|
return this.api.getProfile().then(profile => {
|
||||||
|
|
||||||
|
if( profile === null )
|
||||||
|
{
|
||||||
|
return `<h1>Can't fetch profile. Please try again later</h1> Make sure <strong>codestats.username</strong> setting is set to correct user name.`;
|
||||||
|
}
|
||||||
|
|
||||||
let htmlTemplate = fs.readFileSync(this.context.asAbsolutePath("assets/profile.html.eex"));
|
let htmlTemplate = fs.readFileSync(this.context.asAbsolutePath("assets/profile.html.eex"));
|
||||||
|
|
||||||
profile["level"] = getLevel(profile["total_xp"]);
|
profile["level"] = getLevel(profile["total_xp"]);
|
||||||
|
@ -51,17 +51,26 @@ export class XpCounter {
|
|||||||
this.statusBarItem.command = "code-stats.profile";
|
this.statusBarItem.command = "code-stats.profile";
|
||||||
}
|
}
|
||||||
|
|
||||||
let provider = new ProfileProvider(context, this.api);
|
subscriptions.push(workspace.registerTextDocumentContentProvider('code-stats', new ProfileProvider(context, this.api)));
|
||||||
|
|
||||||
let registration = workspace.registerTextDocumentContentProvider('code-stats', provider);
|
|
||||||
|
|
||||||
subscriptions.push(registration);
|
|
||||||
|
|
||||||
let previewUri = Uri.parse('code-stats://profile')
|
|
||||||
|
|
||||||
subscriptions.push(commands.registerCommand("code-stats.profile", () => {
|
subscriptions.push(commands.registerCommand("code-stats.profile", () => {
|
||||||
commands.executeCommand('vscode.previewHtml', previewUri, ViewColumn.Two, 'Code::Stats Profile');
|
|
||||||
} ) );
|
let config: WorkspaceConfiguration = workspace.getConfiguration(
|
||||||
|
"codestats"
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!config) {
|
||||||
|
window.showErrorMessage('codestats.username configuration setting is missing');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( config.get("username") === '' ){
|
||||||
|
window.showErrorMessage('codestats.username configuration setting is missing');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
commands.executeCommand('vscode.previewHtml', Uri.parse('code-stats://profile'), ViewColumn.Two, 'Code::Stats Profile');
|
||||||
|
}));
|
||||||
|
|
||||||
workspace.onDidChangeTextDocument(
|
workspace.onDidChangeTextDocument(
|
||||||
this.onTextDocumentChanged,
|
this.onTextDocumentChanged,
|
||||||
@ -145,6 +154,9 @@ export class XpCounter {
|
|||||||
`
|
`
|
||||||
);
|
);
|
||||||
|
|
||||||
this.api = new CodeStatsAPI(apiKey, apiURL, userName);
|
if( this.api != null )
|
||||||
|
this.api.updateSettings(apiKey, apiURL, userName);
|
||||||
|
else
|
||||||
|
this.api = new CodeStatsAPI(apiKey,apiURL,userName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user