Skip to content

morinoyu8/icode

 
 

Repository files navigation

A code editor for iOS with Linux emulator iSH.

iCode allows file operations, code editing, and terminal operations all in one app!

This project is forked from Linux emulator iSH. Please send issues, pull requests, etc. about Linux emulator to iSH.

I am not a native English speaker, so issues and pull requests regarding README and code comments are welcome☺️

Features

iCode is currently able to do the following:

  • 📁 File operations

    • Moving between directories in the Linux file system
    • Creating files and folders
  • 📝 Code editing

    • Opening and saving files
    • Auto pairs
    • Running language servers on the Linux emulator
    • Code completions
  • 💻 Linux emulations

    • Running your programs
    • Git operations
    • ... Everything the Linux emulator iSH can do

Hacking

This project has a git submodule, make sure to clone with --recurse-submodules or run git submodule update --init after cloning.

You'll need these things to build the project:

  • Python 3
    • Meson (pip3 install meson)
  • Ninja
  • Clang and LLD (on mac, brew install llvm, on linux, sudo apt install clang lld or sudo pacman -S clang lld or whatever)
  • sqlite3 (this is so common it may already be installed on linux and is definitely already installed on mac. if not, do something like sudo apt install libsqlite3-dev)
  • libarchive (brew install libarchive, sudo port install libarchive, sudo apt install libarchive-dev) TODO: bundle this dependency

Build for iOS

Create iCode.xcconfig in the app folder with the following contents.

// app/iCode.xcconfig
ROOT_BUNDLE_IDENTIFIER = // Bundle identifier
DEVELOPMENT_TEAM = // Your development team ID

Change ROOT_BUNDLE_IDENTIFIER to something unique, and change DEVELOPMENT_TEAM to your development team ID. It's possible to specify bundle identifier and your development team ID in the project or target build settings, but you should put it here to reduce merge conflicts.Then open the project in Xcode, and click Run. There are scripts that should do everything else automatically. If you run into any problems, open an issue and I'll try to help.

Language Server

iCode currently supports only clangd as a language server. And the only function that can be performed is code completion. To use clangd, you need to run apk add clang-extra-tools in the terminal within iCode.

About

Code editor with Linux shell for iOS

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 68.4%
  • Objective-C 20.9%
  • Assembly 5.2%
  • Swift 3.4%
  • Meson 0.7%
  • Shell 0.6%
  • Other 0.8%