Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions media/scripts/patternInStandardScript.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
//@ts-check
/// <reference lib="dom" />

/* global acquireVsCodeApi, document */

/**
* @typedef {Object} VsCodeApi
* @property {function(Object): void} postMessage
* @property {function(): Object} getState
* @property {function(Object): void} setState
*/

;(function () {
/** @type {VsCodeApi} */
// @ts-expect-error - acquireVsCodeApi is provided by VS Code webview API
const vscode = acquireVsCodeApi()

document.addEventListener('DOMContentLoaded', function () {
const copyPatternButton = document.querySelector('.copy-pattern-button')
if (copyPatternButton) {
copyPatternButton.addEventListener('click', function () {
const patternTitle = this.getAttribute('data-pattern-title')
if (patternTitle) {
vscode.postMessage({ type: 'copyPattern', patternTitle: patternTitle })
}
})
}

const refreshButton = document.querySelector('.refresh-button')
if (refreshButton) {
refreshButton.addEventListener('click', function () {
vscode.postMessage({ type: 'refreshIssues' })
})
}
})
})()
150 changes: 150 additions & 0 deletions media/styles/pattern-in-standard.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}

body {
font-family: var(--vscode-font-family);
font-size: var(--vscode-font-size);
color: var(--vscode-foreground);
background-color: var(--vscode-editor-background);
padding: 40px;
line-height: 1.6;
}

h1 {
font-size: 24px;
font-weight: 500;
color: var(--vscode-foreground);
margin-bottom: 16px;
}

.intro-text {
font-size: 14px;
color: var(--vscode-descriptionForeground);
margin-bottom: 28px;
}

.step-card {
border: 1px solid var(--vscode-panel-border);
border-radius: 8px;
padding: 16px;
margin-bottom: 24px;
}

.step-header {
display: flex;
align-items: center;
margin-bottom: 12px;
}

.step-number {
width: 15px;
height: 15px;
border-radius: 50%;
background-color: var(--vscode-button-background);
color: var(--vscode-button-foreground);
display: flex;
align-items: center;
justify-content: center;
font-weight: 700;
font-size: 9px;
margin-right: 8px;
flex-shrink: 0;
}

.step-title {
font-size: 14px;
font-weight: 600;
color: var(--vscode-foreground);
}

.step-description {
font-size: 14px;
color: var(--vscode-descriptionForeground);
margin-bottom: 16px;
margin-left: 24px;
}

.standards-list {
list-style: none;
padding: 0;
margin: 0;
margin-left: 24px;
}

.standards-list li {
margin-bottom: 16px;
}

.standards-list a {
color: var(--vscode-textLink-foreground);
text-decoration: none;
font-size: 13px;
font-weight: 700;
display: inline-flex;
align-items: center;
}

.standards-list a:hover {
color: var(--vscode-textLink-activeForeground);
}

.standards-list a::after {
content: ' →';
margin-left: 5px;
}

.copy-pattern-button {
display: flex;
align-items: center;
gap: 8px;
background-color: transparent;
border: 1px solid var(--vscode-panel-border);
border-radius: 4px;
padding: 8px;
font-size: 12px;
font-weight: 400;
color: var(--vscode-descriptionForeground);
cursor: pointer;
margin-left: 24px;
}

Comment thread
inesgomas marked this conversation as resolved.
.copy-icon {
width: 16px;
height: 16px;
color: var(--vscode-descriptionForeground);
flex-shrink: 0;
}

.refresh-button {
background-color: var(--vscode-button-background);
color: var(--vscode-button-foreground);
border: 1px solid var(--vscode-button-border);
padding: 6px 12px;
font-size: 13px;
font-weight: 500;
cursor: pointer;
display: inline-block;
margin-left: 24px;
}
Comment thread
inesgomas marked this conversation as resolved.

.refresh-button:hover {
background-color: var(--vscode-button-hoverBackground);
}

.help-text {
margin-top: 28px;
font-size: 12px;
color: var(--vscode-descriptionForeground);
}

.help-text a {
color: var(--vscode-textLink-foreground);
text-decoration: none;
}

.help-text a:hover {
color: var(--vscode-textLink-activeForeground);
}
10 changes: 10 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -315,6 +315,16 @@
"title": "See CLI issue details",
"category": "Codacy commands"
},
{
"command": "codacy.issue.disablePattern",
"title": "Disable a pattern for this repository",
"category": "Codacy commands"
},
{
"command": "codacy.cliIssue.disablePattern",
"title": "Disable a pattern detected by the CLI for this repository",
"category": "Codacy commands"
},
{
"command": "codacy.configureMCP",
"title": "Configure Codacy MCP Server",
Expand Down
17 changes: 15 additions & 2 deletions src/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,13 @@ import { StatusBar } from './views/StatusBar'
import { IssueActionProvider, ProblemsDiagnosticCollection } from './views/ProblemsDiagnosticCollection'
import { Config } from './common/config'
import { AuthUriHandler, codacyAuth } from './auth'
import { IssueDetailsProvider, seeIssueDetailsCommand, seeCliIssueDetailsCommand } from './views/IssueDetailsProvider'
import {
IssueDetailsProvider,
seeIssueDetailsCommand,
seeCliIssueDetailsCommand,
disablePatternCommand,
disableCliPatternCommand,
} from './views/IssueDetailsProvider'
import { PullRequestsTree } from './views/PullRequestsTree'
import { PullRequestNode } from './views/nodes/PullRequestNode'
import { BranchIssuesTree } from './views/BranchIssuesTree'
Expand Down Expand Up @@ -92,6 +98,8 @@ const registerCommands = async (context: vscode.ExtensionContext, codacyCloud: C
'codacy.showOutput': () => Logger.outputChannel.show(),
'codacy.issue.seeDetails': seeIssueDetailsCommand,
'codacy.cliIssue.seeDetails': seeCliIssueDetailsCommand,
'codacy.issue.disablePattern': disablePatternCommand,
'codacy.cliIssue.disablePattern': disableCliPatternCommand,
'codacy.installCLI': async () => {
await codacyCloud.cli?.install()
},
Expand Down Expand Up @@ -268,7 +276,12 @@ export async function activate(context: vscode.ExtensionContext) {

context.subscriptions.push(AuthUriHandler.register())

context.subscriptions.push(vscode.languages.registerCodeActionsProvider('*', new IssueActionProvider()))
context.subscriptions.push(
vscode.languages.registerCodeActionsProvider(
'*',
new IssueActionProvider(() => codacyCloud.params, codacyCloud.cli)
)
)

context.subscriptions.push(
vscode.workspace.registerTextDocumentContentProvider('codacyIssue', new IssueDetailsProvider())
Expand Down
4 changes: 2 additions & 2 deletions src/git/CodacyCloud.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import Logger from '../common/logger'
import Telemetry from '../common/telemetry'
import { Config, handleError, parseGitRemote } from '../common'
import { Api } from '../api'
import { Branch, OpenAPIError, OrganizationWithMeta, RepositoryWithAnalysis } from '../api/client'
import { Branch, OpenAPIError, OrganizationWithMeta, Provider, RepositoryWithAnalysis } from '../api/client'
import { PullRequest, PullRequestInfo } from './PullRequest'
import { IssuesManager } from './IssuesManager'
import { checkFirstAnalysisStatus, getRepositoryCodacyCloudStatus } from '../onboarding'
Expand Down Expand Up @@ -48,7 +48,7 @@ const LOAD_RETRY_TIME = 2 * 60 * 1000 // 2 minutes
const MAX_LOAD_ATTEMPTS = 5

export interface RepositoryParams {
provider: 'bb' | 'gh' | 'gl'
provider: Provider
organization: string
repository: string
}
Expand Down
Loading
Loading