Skip to content

markohlebar/Peckham

Folders and files

NameName
Last commit message
Last commit date

Latest commit

aef5759 · Oct 5, 2016
May 21, 2014
May 2, 2016
Jun 22, 2014
May 2, 2016
Jul 30, 2015
Jun 13, 2016
May 2, 2016
Jan 25, 2015
Nov 21, 2015
Mar 3, 2016
Mar 3, 2016
Mar 7, 2016
Jul 31, 2015
Feb 28, 2016
Feb 28, 2016
Oct 5, 2016
Mar 22, 2014

Repository files navigation

Peckham

CI Status

Xcode plugin that simplifies adding #import-s.

Important

Xcode plugins are no longer supported since Xcode 8. If you're looking for an Xcode App Extension, check out

Peckham.gif

Installation Guide

Alcatraz

  • install Alcatraz and search for Peckham

Manual Labour

  • clone the repository or download .zip
  • open Peckham.xcodeproj
  • build Peckham target
  • restart Xcode

User guide

  • ⌘ + ctrl + P to invoke the popup
  • start typing or paste the keyword of your import
  • use or keys to navigate
  • press or double click to add an import

Advanced

  • fuzzy search => type mvc to find a ModelViewController
  • copy paste => ⌘ + C the class name and then ⌘ + V after opening Peckham

History

Originally the plugin was supposed to handle adding / removing imports on the fly, which soon proved to be a more difficult task than I originally imagined, and took me on an exploration path of Clang libtooling and other cool stuff. I recently decided that I would instead make a GUI popup for adding an #import which seems to be a better approach to the problem in the first place. The code base contains a lot of parts that were originally meant to parse the code and make a tree (similar to Clang's AST) to find the #import statements in text. Due to performance reasons, this was dumped in favor of regex-es.

Roadmap

There are several things that are to be added to the project

  • faster algorithm to find the header files associated with a certain target
  • adding frameworks to the selected target build phases as soon as you add an #import in your file
  • @import support

Known Issues

  • the search includes the whole path of the header
  • the table cell highlights the wrong piece of string
  • user headers are not really handled properly
  • there is an issue with header duplication (especially visible with CocoaPods)

Contributing

  • check issues section
  • branch from develop and PR to develop
  • use gitflow for creating a feature branch

Dependencies

License

MIT, see LICENSE