Skip to content

Conversation

@Cyberistic
Copy link

@Cyberistic Cyberistic commented Jan 7, 2026

Description

Screencast

Checklist

@raycastbot
Copy link
Collaborator

Congratulations on your new Raycast extension! 🚀

Due to our current reduced availability, 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.

@Cyberistic Cyberistic marked this pull request as ready for review January 7, 2026 23:32
Copilot AI review requested due to automatic review settings January 7, 2026 23:32
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 "Create File" extension to Raycast that enables quick file creation with specified names and extensions across macOS, Windows, and Linux platforms.

Key changes:

  • Implements cross-platform file explorer integration to detect current directory contexts
  • Provides two commands: "Create File Here" (in current directory) and "Create File To Clipboard" (creates in /tmp and copies to clipboard)
  • Includes intelligent file naming with auto-increment for duplicates following system conventions

Reviewed changes

Copilot reviewed 9 out of 12 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
extensions/create-file/package.json Defines extension metadata, commands, dependencies, and build configuration
extensions/create-file/src/utils.ts Contains utility functions for cross-platform file explorer detection, file creation, and path handling
extensions/create-file/src/create-file-here.tsx Implements main command that creates files in the current file explorer directory with clipboard fallback
extensions/create-file/src/create-file-to-clipboard.tsx Implements command that creates files in /tmp and copies them to clipboard
extensions/create-file/tsconfig.json TypeScript configuration for the extension
extensions/create-file/README.md Comprehensive documentation including usage examples, platform-specific behavior, and installation instructions
extensions/create-file/eslint.config.js ESLint configuration using Raycast's standard config
extensions/create-file/.prettierrc Prettier formatting configuration
extensions/create-file/.gitignore Standard Node.js gitignore patterns
Files not reviewed (1)
  • extensions/create-file/package-lock.json: Language not supported

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Jan 7, 2026

Greptile Summary

Adds a new cross-platform extension for creating files with custom names and extensions. The extension provides two commands: "Create File Here" (creates files in the current Finder/Explorer directory with clipboard fallback) and "Create File To Clipboard" (creates files in /tmp and copies them to clipboard).

Key issues found:

  • Missing CHANGELOG.md file (required by repository standards)
  • Manual Preferences interface definition instead of using auto-generated types from raycast-env.d.ts
  • Platform mismatch: README claims Linux support, but package.json only lists macOS and Windows in the platforms array
  • Unused Linux file manager detection code in utils.ts that won't be accessible to users

Positive aspects:

  • Clean code structure with proper error handling
  • Correct Prettier configuration (printWidth: 120, singleQuote: false)
  • Cross-platform support for macOS and Windows with appropriate platform-specific implementations
  • Good use of Raycast APIs

Confidence Score: 3/5

  • This PR has several issues that need resolution before merge - missing required documentation and platform configuration inconsistencies
  • Score reflects critical issues: missing CHANGELOG.md violates repository standards, manual type definitions violate Raycast guidelines, and platform documentation mismatches create user confusion. The core implementation is sound, but these standardization issues must be addressed.
  • Pay close attention to src/create-file-here.tsx (type definitions), README.md and package.json (platform alignment), and ensure CHANGELOG.md is created

Important Files Changed

Filename Overview
extensions/create-file/package.json Well-structured configuration with correct Prettier settings and modern dependencies, but missing CHANGELOG.md
extensions/create-file/src/create-file-here.tsx Manual Preferences interface definition violates custom rule - should use auto-generated types
extensions/create-file/src/utils.ts Contains Linux file manager detection logic but Linux is not in supported platforms array
extensions/create-file/README.md Claims Linux support in documentation but package.json only lists macOS and Windows as platforms

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.

9 files reviewed, 3 comments

Edit Code Review Agent Settings | Greptile


- **macOS**: Full support with Finder integration
- **Windows**: Full support with File Explorer integration
- **Linux**: Full support with file explorer integration
Copy link
Contributor

Choose a reason for hiding this comment

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

logic: package.json specifies platforms: ["macOS", "Windows"], but README claims Linux support. Either add Linux to platforms array or remove Linux documentation.

Comment on lines +143 to +165
export const getLinuxFileManagerPath = async (): Promise<string | null> => {
try {
// Try to get the current directory from common Linux file explorers
// This is a best-effort approach as Linux file explorers vary widely

// Try xdotool to get the focused window's working directory
const { stdout } = await execAsync('xdotool getactivewindow getwindowname 2>/dev/null || echo ""');

// Parse common file explorer window titles
const windowTitle = stdout.trim();

// Try to extract path from Nautilus, Dolphin, Thunar, etc.
const pathMatch = windowTitle.match(/^(.*?)\s*[-–—]\s*(?:Files|Dolphin|Thunar)/);
if (pathMatch) {
return pathMatch[1].trim();
}

return null;
} catch (e) {
console.error("Error getting Linux file explorer path:", e);
return null;
}
};
Copy link
Contributor

Choose a reason for hiding this comment

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

logic: Linux is not in the supported platforms array in package.json, so this code won't be accessible to users. Either add Linux to platforms or remove this code.

Copy link
Author

Choose a reason for hiding this comment

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

this was slop produced by your kind, raycast is not even on linux!

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
- fix stupid bot
- Merge branch \'contributions/merge-1767844831293\'
- Pull contributions
- updated icon
- added changelogs
- grammar and removing slop
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants