Skip to content

Conversation

@brunomdsilva
Copy link

@brunomdsilva brunomdsilva commented Jan 29, 2026

Description

Screencast

Checklist

- chore: rename extension from Quick Code to Project Manager
- run prettier
- chore: prepare for Raycast Store submission
- wip
- wip
- feat: Quick Code Raycast extension
- wip
@raycastbot raycastbot added new extension Label for PRs with new extensions platform: macOS labels Jan 29, 2026
@raycastbot
Copy link
Collaborator

Congratulations on your new Raycast extension! 🚀

We're currently experiencing a high volume of incoming requests. As a result, the initial review may take up to 10-15 business days.

Once the PR is approved and merged, the extension will be available on our Store.

@brunomdsilva brunomdsilva marked this pull request as ready for review January 29, 2026 17:58
Copilot AI review requested due to automatic review settings January 29, 2026 17:58
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a new "Project Manager" extension to Raycast that enables developers to organize and quickly access their development projects through configurable path scanning with wildcard support.

Changes:

  • Adds complete Project Manager extension with path configuration, project listing, and management features
  • Implements multiple sorting modes (frequency, manual, alphabetical, recent) with pin support
  • Includes project creation and deletion functionality with editor/terminal integration

Reviewed changes

Copilot reviewed 13 out of 20 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
extensions/project-manager/tsconfig.json TypeScript configuration for the extension
extensions/project-manager/src/utils/types.ts Type definitions for projects, metadata, and preferences
extensions/project-manager/src/utils/consts.ts Constants for path labels and sort mode configurations
extensions/project-manager/src/manage-projects.tsx Main UI component for listing and managing projects
extensions/project-manager/src/manage-paths.tsx UI for adding/removing project paths with validation
extensions/project-manager/src/helpers/storage.ts LocalStorage wrapper for persisting paths, metadata, and sort preferences
extensions/project-manager/src/helpers/projects.ts Helper functions for scanning directories and building project lists
extensions/project-manager/src/create-project.tsx Form UI for creating new project folders
extensions/project-manager/package.json Extension manifest with commands, preferences, and dependencies
extensions/project-manager/IDEA.md Project concept documentation in Portuguese
extensions/project-manager/CHANGELOG.md Initial version changelog with placeholder merge date
extensions/project-manager/.gitignore Git ignore rules for node_modules and .raycast
extensions/project-manager/.eslintrc.json ESLint configuration extending Raycast's config

Comment on lines +1 to +7
export const PATH_LABELS = {
parent: "Parent Folder",
single: "Single Folder",
} as const;

import { Icon } from "@raycast/api";

Copy link

Copilot AI Jan 29, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Import statement should be placed at the top of the file, before all other code including exports, following standard ES module conventions.

Suggested change
export const PATH_LABELS = {
parent: "Parent Folder",
single: "Single Folder",
} as const;
import { Icon } from "@raycast/api";
import { Icon } from "@raycast/api";
export const PATH_LABELS = {
parent: "Parent Folder",
single: "Single Folder",
} as const;

Copilot uses AI. Check for mistakes.
@greptile-apps
Copy link
Contributor

greptile-apps bot commented Jan 29, 2026

Greptile Overview

Greptile Summary

This PR adds a new project-manager extension that provides quick access to development projects with features for organizing, searching, and opening projects in editors/terminals.

Key Features:

  • Project path management with wildcard support (~/Developer/* for subfolders)
  • Multiple sorting modes: frequency, manual, alphabetical, and recent
  • Pin/unpin projects and track open frequency
  • Create and delete projects with proper validation
  • Open projects in editor, terminal, or both
  • Path validation with "Not found" indicator

Issues Found:

  • Manual Preferences interface definition in src/utils/types.ts should be removed (violates auto-generation pattern)

Overall Assessment:
The extension is well-structured with clean separation of concerns, proper error handling, and follows most Raycast conventions. Uses built-in trash() method correctly. Includes proper metadata screenshots and changelog with {PR_MERGE_DATE} placeholder.

Confidence Score: 4/5

  • This PR is safe to merge after fixing the manual Preferences interface definition
  • Score reflects well-implemented functionality with proper error handling and adherence to most Raycast conventions, but requires fixing the manual Preferences type definition which violates auto-generation patterns
  • Pay attention to extensions/project-manager/src/utils/types.ts to remove the manual Preferences interface

Important Files Changed

Filename Overview
extensions/project-manager/package.json Clean configuration with proper dependencies and metadata
extensions/project-manager/src/manage-projects.tsx Main command with project listing, sorting, and management features
extensions/project-manager/src/manage-paths.tsx Path management with wildcard support and validation indicators
extensions/project-manager/src/utils/types.ts Type definitions with manual Preferences interface (should be auto-generated)

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

4 files reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

Comment on lines 17 to 20
export interface Preferences {
mainEditor?: Application;
mainTerminal?: Application;
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove manual Preferences interface definition. Raycast auto-generates preference types in raycast-env.d.ts when the extension runs. Manual definitions can become out of sync with your actual configuration in package.json.

Suggested change
export interface Preferences {
mainEditor?: Application;
mainTerminal?: Application;
}
// Preferences interface is auto-generated in raycast-env.d.ts
// Remove this manual definition and import from @raycast/api if needed

Context Used: Rule from dashboard - What: Don't manually define Preferences for getPreferenceValues() or commends Argument interfa... (source)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new extension Label for PRs with new extensions platform: macOS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants