CodeEdit icon indicating copy to clipboard operation
CodeEdit copied to clipboard

✨ Implement Xcode-specific Features

Open AsedaDeveloper opened this issue 3 years ago • 13 comments

  • [x] Source Editor. ...
  • [x] Assistant Editor. ...
  • [ ] Version Editor. ...
  • [ ] Interface Builder Built-In. ...
  • [ ] Simulator. ...
  • [ ] Integrated Build System. ...
  • [x] Compilers. ...
  • [ ] Graphical Debugger.
  • [x] Asset Catalog
  • [ ] Open Quickly
  • [ ] OpenGL Frame Capture
  • [ ] Complete Documentation
  • [ ] Live Issues
  • [ ] Fix-it
  • [ ] XCTest Framework
  • [ ] Static Analysis

Describe alternatives you've considered

Source Editor

Write code using a professional editor with advanced code completion, code folding, syntax highlighting, and message bubbles that display warning, errors, and other context-sensitive information inline with your code.

Assistant Editor

The Assistant button splits the editor in two, creating a secondary pane that automatically displays files that are most helpful to you based on the code you are actively editing. It can show the header counterpart, the superclass, callers, callees, or other helpful files.

Version Editor

Xcode’s Version editor displays a running timeline of commits, helps you determine blame, and graphically goes back in time to compare source files, with full support for Subversion and Git source control (SCM) systems.

Interface Builder Built-In

Design and test your user interface without writing a line of code, prototype in minutes, then graphically connect your interface to the source within the Xcode editor.

Simulator

With the iOS SDK, Xcode can build, install, run, and debug Cocoa Touch apps in a Mac-based Simulator for a streamlined development workflow.

Integrated Build System

Handles the most complex builds, scaling to maximize the power of multi-core Macs, and will automatically sign, provision, and install iPad and iPhone apps onto a device.

Compilers

The powerful open-source LLVM compiler for C, C++, and Objective-C is built into Xcode and available from Terminal. With it, your code compiles quickly, and is optimized by Apple to produce blazing-fast apps specifically tuned for the CPUs in iPhone, iPad, and Mac.

Graphical Debugger

Debug your app directly within the Xcode editor. Hover over any variable to drill into its contents, use Quick Look to see the data it contains, or right-click to add the variable to the watch list.

Continuous Integration

Xcode Server controls server-side bots that continuously build, analyze, test, and even archive your Xcode projects. The Xcode IDE configures these bots, analyzes nightly build and test results, and can track down which check-in broke the build.

Asset Catalog

The asset catalog editor in Xcode manages your app’s images, grouping together various resolutions of the same asset. When building, Xcode compiles the asset catalog into the most efficient bundle for final distribution.

Open Quickly

Simply press Cmd-Shift-O to instantly open any file within your workspace using the primary editor, or hold the Option key when selecting a file to open it in the Assistant editor. Open Quickly is an essential tool in any keyboard-driven workflow.

OpenGL Frame Capture

Press a single button to capture a complete representation of the current OpenGL frame from an iOS device. Xcode displays the shader information, and can visually construct how the frame was assembled within the Xcode debugger.

Complete Documentation

Easily search and find anything within Help or the Documentation and API Reference viewer.

Live Issues

Just like a word processor highlights spelling errors, Live Issues highlights common coding mistakes, without the need to click ‘build’ first.

Fix-it

Xcode goes beyond just reporting errors. When you make a coding mistake, Xcode will immediately alert you, and a single keyboard shortcut will instantly fix the issue, so you won’t miss a beat while coding.

Quick Help

Shortened API documentation is displayed while you’re programming, including comments that you write for your code. A brief overview is presented during code completion, with more links and references available within the Utility area.

XCTest Framework

XCTest APIs make it easy to build unit tests that exercise app functionality and are capable of running on Mac, iPad, iPhone, or Simulator.

Static Analysis

Find bugs in your code before the app is even run by letting the built-in static analyzer try out thousands of possible code paths in a few seconds. You’ll get a report of potential bugs that could have remained hidden or are nearly impossible to replicate.

Additional context

You can take a look at these features of Xcode here

AsedaDeveloper avatar May 16 '22 00:05 AsedaDeveloper

Just to clarify: Many feature requests you mentioned (Interface Builder, Asset Catalogs, Simulator, XCTest) are specific to Xcode and therefore Swift/Obj-C projects.

We are not trying to replace Xcode by any means but rather offer a native alternative to IDEs like VSCode mainly for projects written in other languages like JS, Rust, Python,…

lukepistrol avatar May 16 '22 00:05 lukepistrol

But shouldn’t it have a simulator

AsedaDeveloper avatar May 16 '22 05:05 AsedaDeveloper

@AsedaDeveloper a simulator sounds like a great feature for an extension when that feature is ready! The CodeEdit project is more focused on being a general code editor. Xcode does a great job for Swift/Objc projects already and provides a simulator to solve those problems as one of it's main features because of their focus on Apple development.

thecoolwinter avatar May 16 '22 06:05 thecoolwinter

You can also add Live issues and the simulator can be an app extension which launches when you run a code in Swift.

AsedaDeveloper avatar May 16 '22 06:05 AsedaDeveloper

I wonder if it would be possible to utilize Xcodes compiler and/or Simulator from CodeEdit. Regardless, to echo what has been mentioned. CodeEdit was never intended to replace Xcode, however we might consider a more lightweight Swift editing experience.

austincondiff avatar May 16 '22 14:05 austincondiff

I wonder if it would be possible to utilize Xcodes compiler and/or Simulator from CodeEdit. Regardless, to echo what has been mentioned. CodeEdit was never intended to replace Xcode, however we might consider a more lightweight Swift editing experience.

Building is possible (probably need Xcode/commandlinetools installed)… and probably simulator too, but that is probably a lot of work.

0xWDG avatar May 16 '22 15:05 0xWDG

@AsedaDeveloper Xcode's simulator can be launched via command line tools. This could be embedded in an extension but would require Xcode to be installed as well.

lukepistrol avatar May 16 '22 15:05 lukepistrol

I wonder if it would be possible to utilize Xcodes compiler and/or Simulator from CodeEdit. Regardless, to echo what has been mentioned. CodeEdit was never intended to replace Xcode, however we might consider a more lightweight Swift editing experience.

Will the Swift editing experience be fast

AsedaDeveloper avatar May 16 '22 16:05 AsedaDeveloper

Well It would certainly be unacceptable to build it to be slow 😉

austincondiff avatar May 16 '22 16:05 austincondiff

If the user uses languages like HTML, CSS, and JavaScript, then we could add an option to run their projects in the default web browser. The simulator feature should be exclusive to app development and not web development.

ghost avatar May 17 '22 13:05 ghost

@AsedaDeveloper a few of the features you requested are currently in the works thanks to our growing team of contributors. See the list below for those features.

  • Asset Catalog
  • Compiler (we also have a terminal)
  • Source Editor
  • Assistant Editor
  • Quick Help (we are currently transferring our documentation that is provided in Xcode to the app)

ghost avatar May 17 '22 16:05 ghost

@austincondiff do you know a good package that will help us get our documentation into quick help

ghost avatar May 19 '22 00:05 ghost

@SwiftUILabs I think we will have to build this ourselves unless anyone has a compelling alternative.

austincondiff avatar May 19 '22 03:05 austincondiff

Closing this issue, the scope is too broad and some are not applicable.

austincondiff avatar Sep 30 '22 18:09 austincondiff