Skip to content

molon/MLAutoReplace

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 

MLAutoReplace

Xcode plugin, Re-Intent, make you write code more quickly.
Use a portion code of VVDocumenter-Xcode.

##Overview You can use shortcut key Shift+Command+\ to auto re-indent all source of the current edit file.

You can custom other replacer with regex.
regex replace
regex replace
pseudo-generic

You can input common getter quickly.
replace getter

##How to install? Download this project and run.

##Regex replacer

Exmple:
replace getter
This item means that plugin will replace @s/ to @property (nonatomic, strong) <#custom#>.

The plugin will detect the content of current input line.

Some placeholders can be replace with context.

  • <datetime>: current datetime, you can use it to mark your edit time.
  • <declare_class_below>: the class name of the first @interface XXX : below.
  • <{0}>,<{1}>...: these placeholders will be replaced with its corresponding position of regex result.

A demo for pseudo-generic(ibireme/YYModel#79):

pseudo-generic

It uses two styles of placeholders:

<declare_class_below>:

regex: ^\s*@[Pp]{2}$
replaceContent: @protocol <declare_class_below>;

<{0}>,<{1}>(location placeholders):

regex: ^\s*@property\s*\(\s*nonatomic\s*(,\s*strong\s*|)\)\s*(NSArray|NSMutableArray|NSSet|NSMutableSet)\s*<\s*(\w+)\s*>$
replaceContent: @property (nonatomic<{0}>) <{1}><<{2}> *><<{2}>> *<#name#>

regex: ^\s*@property\s*\(\s*nonatomic\s*(,\s*strong\s*|)\)\s*(NSDictionary|NSMutableDictionary)\s*<\s*(\w+)\s*>$
replaceContent: @property (nonatomic<{0}>) <{1}><NSString *,<{2}> *><<{2}>> *<#name#>

##Re-Indent

Just can be quickly re-intent.

If you find that press Shift+Command+\ does nothing.
Please ensure that the shortcut key setting of Re-Intent is default. re-intent shortcut key setting

##Getter replacer

In fact, this feature can be implemented with location placeholders. But I am not willing to delete the old feature.

You need add your own common syntax to the getter replacer.
replace getter

<name> means the property name.
<#xxx#> means where need to input in,it is recommended to provide.

Exmple:

- (UIImageView *)<name>
{
    if (!_<name>) {
		UIImageView *imageView = [[UIImageView alloc]init];
        imageView.image = [UIImage imageNamed:@"<#imageName#>"];
        imageView.contentMode = UIViewContentModeScaleAspectFill;
        <#custom#>

        _<name> = imageView;
    }
    return _<name>;
}

You must reload .plist file with shortcut control+option+command+\ after editing and saving it.
You can also reload it with the Reload .plist Data button in MLAutoReplace window.

How to use:

- (UIImageView *)xxx///

Dont forget /// please. :)

About

Xcode plugin which help you write code faster.

Resources

Stars

Watchers

Forks

Packages

No packages published