Skip to content

Commit e1da0e1

Browse files
committed
wip: only scan one project
1 parent 2a37205 commit e1da0e1

4 files changed

Lines changed: 52 additions & 23 deletions

File tree

plugin/src/main/java/io/snyk/eclipse/plugin/views/MenuHandler.java

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,36 @@
33
import org.eclipse.core.commands.AbstractHandler;
44
import org.eclipse.core.commands.ExecutionEvent;
55
import org.eclipse.core.commands.ExecutionException;
6+
import org.eclipse.core.resources.IProject;
7+
import org.eclipse.jdt.internal.core.JavaProject;
8+
import org.eclipse.jface.viewers.IStructuredSelection;
9+
import org.eclipse.ui.ISelectionService;
610
import org.eclipse.ui.IWorkbenchWindow;
711
import org.eclipse.ui.handlers.HandlerUtil;
812

13+
import io.snyk.languageserver.LsCommandID;
914
import io.snyk.languageserver.protocolextension.SnykExtendedLanguageClient;
1015

1116
public class MenuHandler extends AbstractHandler {
1217

13-
public Object execute(ExecutionEvent event) throws ExecutionException {
14-
IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
15-
SnykExtendedLanguageClient.getInstance().triggerScan(window);
16-
return null;
17-
}
18+
public Object execute(ExecutionEvent event) throws ExecutionException {
19+
IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
20+
21+
ISelectionService service = window.getSelectionService();
22+
IStructuredSelection structured = (IStructuredSelection) service.getSelection();
23+
24+
Object firstElement = structured.getFirstElement();
25+
IProject project = null;
26+
27+
if (firstElement instanceof JavaProject) {
28+
project = ((JavaProject) firstElement).getProject();
29+
}
30+
31+
if (firstElement instanceof IProject) {
32+
project = (IProject) firstElement;
33+
}
34+
35+
SnykExtendedLanguageClient.getInstance().triggerScan(project);
36+
return null;
37+
}
1838
}

plugin/src/main/java/io/snyk/eclipse/plugin/views/snyktoolview/SnykToolView.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import java.util.HashMap;
66
import java.util.Map;
77

8+
import org.eclipse.core.resources.IProject;
9+
import org.eclipse.core.resources.ResourcesPlugin;
810
import org.eclipse.jface.action.IMenuManager;
911
import org.eclipse.jface.action.MenuManager;
1012
import org.eclipse.jface.viewers.ISelectionChangedListener;
@@ -286,19 +288,20 @@ public void enableDelta() {
286288
TreeItem[] rootItems = getTreeViewer().getTree().getItems();
287289
for (TreeItem item : rootItems) {
288290
ContentRootNode node = (ContentRootNode) item.getData();
289-
String project = node.getText().toString();
291+
String projectName = node.getText().toString();
290292
String projectPath = node.getPath().toString();
291293
String baseBranch = preferenceState.getBaseBranch(projectPath);
294+
IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
292295
String[] localBranches = preferenceState.getLocalBranches(projectPath).toArray(String[]::new);
293296

294297
item.setText(
295-
String.format("Click to choose base branch for: %s [ current: %s ]", project, baseBranch));
298+
String.format("%s - Click here choose base branch [ current: %s ]", projectName, baseBranch));
296299

297300
Listener selectionListener = new Listener() {
298301
@Override
299302
public void handleEvent(Event event) {
300303
if (event.item == item) {
301-
baseBranchDialog(event.display, projectPath, localBranches);
304+
baseBranchDialog(event.display, projectPath, project, localBranches);
302305
}
303306
}
304307
};
@@ -313,7 +316,7 @@ public void handleEvent(Event event) {
313316
});
314317
}
315318

316-
private void baseBranchDialog(Display display, String projectPath, String[] localBranches) {
319+
private void baseBranchDialog(Display display, String projectPath, IProject project, String[] localBranches) {
317320
Shell shell = new Shell(display, SWT.APPLICATION_MODAL | SWT.DIALOG_TRIM);
318321
shell.setText("Choose base branch for net-new issues scanning");
319322
shell.setLayout(new GridLayout(1, false));
@@ -337,7 +340,7 @@ public void widgetSelected(SelectionEvent e) {
337340
if (Arrays.asList(localBranches).contains(selectedBranch)) {
338341
preferenceState.setBaseBranch(projectPath, selectedBranch);
339342
shell.close();
340-
SnykExtendedLanguageClient.getInstance().triggerScan(null);
343+
SnykExtendedLanguageClient.getInstance().triggerScan(project);
341344
} else {
342345
SnykLogger.logInfo("Branch is not a valid local branch for repository: " + projectPath);
343346
}
Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,32 @@
11
package io.snyk.eclipse.plugin.views.snyktoolview.handlers;
22

3+
import org.eclipse.core.commands.ExecutionEvent;
4+
import org.eclipse.core.commands.ExecutionException;
35
import org.eclipse.ui.commands.IElementUpdater;
46

57
import io.snyk.eclipse.plugin.properties.preferences.Preferences;
68
import io.snyk.eclipse.plugin.utils.SnykIcons;
9+
import io.snyk.eclipse.plugin.views.snyktoolview.TreeFilterManager;
10+
import io.snyk.eclipse.plugin.views.snyktoolview.filters.SeverityCriticalFilter;
711

812
public class EnableAllSeveritiesHandler extends BaseHandler implements IElementUpdater {
9-
13+
1014
public EnableAllSeveritiesHandler() {
1115
super();
1216

1317
iconEnabled = SnykIcons.ENABLED;
1418
iconDisabled = SnykIcons.DISABLED;
1519
preferenceKey = Preferences.ACTIVATE_SNYK_CODE_QUALITY;
20+
21+
}
22+
23+
@Override
24+
public Object execute(ExecutionEvent event) throws ExecutionException {
25+
super.execute(event);
26+
27+
TreeFilterManager.getInstance().removeTreeFilter(this.preferenceKey);
28+
29+
return null;
1630
}
1731

1832
}

plugin/src/main/java/io/snyk/languageserver/protocolextension/SnykExtendedLanguageClient.java

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ public LanguageServer getConnectedLanguageServer() {
176176
return super.getLanguageServer();
177177
}
178178

179-
public void triggerScan(IWorkbenchWindow window) {
179+
public void triggerScan(IProject project) {
180180
CompletableFuture.runAsync(() -> {
181181
if (Preferences.getInstance().getAuthToken().isBlank()) {
182182
runSnykWizard();
@@ -188,14 +188,13 @@ public void triggerScan(IWorkbenchWindow window) {
188188
this.toolView.enableDelta();
189189

190190
try {
191-
this.toolView.resetNode(this.toolView.getRoot());
192-
if (window == null) {
191+
if (project == null) {
193192
executeCommand(LsCommandID.COMMAND_WORKSPACE_SCAN, new ArrayList<>());
194193
return;
195194
}
196195

197-
ISelectionService service = window.getSelectionService();
198-
IStructuredSelection structured = (IStructuredSelection) service.getSelection();
196+
executeCommand(LsCommandID.COMMAND_WORKSPACE_FOLDER_SCAN,
197+
List.of(project.getLocation().toOSString()));
199198

200199
Object firstElement = structured.getFirstElement();
201200
IProject project = null;
@@ -631,13 +630,6 @@ private void enableSnykViewRunActions() {
631630
});
632631
}
633632

634-
private void runForProject(String projectName) {
635-
SnykView snykView = SnykStartup.getSnykView();
636-
if (snykView != null) {
637-
snykView.testProject(projectName);
638-
}
639-
}
640-
641633
private CompletableFuture<Object> executeCommand(@NonNull String command, List<Object> arguments) {
642634
ensureLanguageServerRunning();
643635
ExecuteCommandParams params = new ExecuteCommandParams(command, arguments);

0 commit comments

Comments
 (0)