超详细的Xcode代码格式化教程,可自定义样式分分

作者:分分快三计划

分分快三计划 1

设置快捷键

先是你能够选中菜单中的 Enable Format On Sava,把它点Disable Format On Sava,那样今后每便按⌘ S保留文件时就足以自动格式化了。

分分快三计划 2显示器快速照相二零一五-09-10 清晨12.43.50.png

作者们也能够给部分菜系设置飞速键,使用的时候绝不每一趟去筛选各级菜单了。比如大家给Format Selected Text设置快速键:

分分快三计划 3安装格式化火速键

您也足以为任何菜单设置火速键,其实呢,作者用Format Selected Text的时候非常少,每一遍都以想格式化的时候平素⌘ S就能够了哈哈哈。

选用amazeUI的下拉框,要细心以下几点难题:

分分快三计划 4

何以要格式化代码

当协会内有多人支付的时候,每一种人写的代码格式都有本身的喜好,也或者会忙着写代码而忽略了格式的标题。在头里,我们或许会写完代码后,再一点一点去调格式,很浪费时间。

有了ClangFormat插件后,就能够意气风发键把代码格式化成统风流洒脱的体制,不止节省了时间,也使得代码更规范。大家还足以定制自身心爱的体制。

2. 万一不想让第后生可畏项暗许选中,就扩张五个空的option作为第叁个项

  <select id="queryContent2" data-am-selected="{btnWidth: '100%', btnSize: 'sm', btnStyle: 'am-btn am-btn-default'}">
        <option value=""></option>
        <option value="ALL" >全部</option>
        <option value="MPP">MPP存储</option>
        <option value="HAD-Hadoop">hadoop存储</option>
        <option value="OBS-Object Storage">对象存储</option>
</select>  

 

配置文件中属性的意思讲明

上边说有的布局文件的常用的参数介绍,其余的能够看官方文书档案:Clang-Format Style Options,此中型Mini括号内代表他需的是何许项目标值。

BasedOnStyle 基于哪类体制。除了文件中写出的定制属性外,别的没定制的习性都私下认可用这种样式的。可选值有八种:LLVM:大器晚成种信守LLVM coding standards的样式。Google:风流罗曼蒂克种遵守Google’s C style guide的样式。Chromium:风姿罗曼蒂克种固守Chromium’s style guide的样式。Mozilla:后生可畏种据守Mozilla’s style guide的体裁。WebKit:意气风发种服从WebKit’s style guide的体裁。

AccessModifierOffset 访问修饰词 前边额外需求加的缩进长度。暗中认可为0。

AlignConsecutiveAssignments 如若是true,把一而再的赋值操作按=对齐,默感到false。

分分快三计划 5AlignConsecutiveDeclarations-true

AlignConsecutiveDeclarations 假若是true,把三回九转行的变量名对齐。默以为false。

分分快三计划 6AlignConsecutiveDeclarations-true

AlignTrailingComments 即使是true,对齐后面部分讲明。默以为false。

分分快三计划 7AlignTrailingComments-true

AllowShortCaseLabelsOnASingleLine 假诺是true, 允许二个case在大器晚成行写完,私下认可为false。

分分快三计划 8AllowShortCaseLabelsOnASingleLine-true

BreakBeforeBraces 大括号前面是还是不是换行,具体可选值看文书档案。平时用Allman,代表享有大括号都换行。

分分快三计划 9BreakBeforeBraces-Allman

ColumnLimit 每行最多有一些个字符,0不限量

IndentWidth 缩进宽度,默以为2,不过我们平时安装为4。

分分快三计划 10IndentWidth-4

IndentCaseLabels switch的case缩进宽度,平常用true。默许为false,case会和switch对齐。

KeepEmptyLinesAtTheStartOfBlocks 是不是保留block里面最初的空行们。默以为true。

分分快三计划 11KeepEmptyLinesAtTheStartOfBlocks-trueMaxEmptyLinesToKeep 最多可以有接连几日几行空行,默认为1。分分快三计划 12MaxEmptyLinesToKeep-1

ObjCBlockIndentWidthOC的block里面包车型地铁缩进宽度,默以为4。

ObjCSpaceAfterProperty OC里面,是还是不是在@property后加空格。默感到false。

分分快三计划 13ObjCSpaceAfterProperty-true

ObjCSpaceBeforeProtocolList OC里面,是还是不是在Protocol名字列表前边加空格,默以为true。

分分快三计划 14ObjCSpaceBeforeProtocolList-true

PointerAlignment 指针的岗位。默以为Right。可选值:Left:NSString* nameMiddle:NSString * nameRight:NSString *name

SpaceBeforeAssignmentOperators = 前边是或不是有空格。默感到true。

SpaceBeforeParens 是否在(近期加空格。私下认可ControlStatements。可选值:Never: 一直不在(如今加空格。ControlStatements:在调整语句(for/if/while...)的(前方加空格。Always:总会在(前面加空格。

分分快三计划 15SpaceBeforeParens-ControlStatementsSpaceInEmptyParentheses 是否在()其间插入五个空格。默许false。

SpacesBeforeTrailingComments 在尾部//注释后面加多少个空格。

分分快三计划 16SpacesBeforeTrailingComments-3

SpacesInAngles 是否在<后边和>前面插入空格,默以为false。

分分快三计划 17SpacesInAngles-true

SpacesInContainerLiterals @[]里面,是否在 [ 后和 ] 前加空格。暗中同意为true。

分分快三计划 18SpacesInContainerLiterals-true

SpacesInParentheses 是否在(后面和)这几天加空格,默以为false。

分分快三计划 19SpacesInParentheses-true

当项目里面有各类语言时,我们能够分别设置样式:

---# 我们默认用 LLVM 样式, 缩进宽度为4。BasedOnStyle: LLVMIndentWidth: 4---Language: Cpp# C   设置星号左对齐。PointerAlignment: Left---Language: JavaScript# JavaScript 每行字符限制设置为100。ColumnLimit: 100---Language: Proto# 不格式化Proto文件。DisableFormat: true...

其一是自己在用的.clang-format文件。大家能够下载下来自身更正一下再用。

应接关心 笔者 和本身的专项论题:iOS技术调换,查看更加的多好文章。

1. select的option和原生select雷同,默许选中第生龙活虎项

  • data-am-select :能够设置有个别下拉框的性质,也得以直接放个data-am-select(交易会示默许设置)

    • btnWidth: null: 开关宽度,默认为 200px

    • btnSize: null: 按键尺寸,可选值为 xl|sm|lg|xl

    • btnStyle: 'default': 开关样式,可选值为 primary|secondary|success|warning|danger

    • maxHeight: null: 列表最大中度

    • dropUp: 0: 是或不是为上拉,默以为 0 (false)

    • placeholder: 占位符,默许读取 <select> 的 placeholder 属性,若无则为 点击选取...

data-am-select="{btnWidth:'百分比,设置宽度', 
                 btnSize: '显示大小,有sm等值', 
                 btnStyle:'有几个固定的值,可以使用,也可以使用默认的样式,或者你自己定义样式都可以'}"

或者:

  <select id="queryContent2" data-am-selected>
        <option value="ALL" >全部</option>
        <option value="MPP">MPP存储</option>
        <option value="HAD-Hadoop">hadoop存储</option>
        <option value="OBS-Object Storage">对象存储</option>
</select>
  • 其余项都不增添selected属性,暗中认可选中的是 第一项
  • 暗许显示的 全部。
  • 注意: 那个时候首先项的option的value属性值 肯定不可能为空
  <select id="queryContent2" data-am-selected="{btnWidth: '100%', btnSize: 'sm', btnStyle: 'am-btn am-btn-default'}">
        <option value="ALL" >全部</option>
        <option value="MPP">MPP存储</option>
        <option value="HAD-Hadoop">hadoop存储</option>
        <option value="OBS-Object Storage">对象存储</option>
</select>  
  • option标签增加 selected属性,会当选该项。
    • 这时候入选的是MPP存款和储蓄。
  <select id="queryContent2" data-am-selected="{btnWidth: '100%', btnSize: 'sm', btnStyle: 'am-btn am-btn-default'}">
        <option value="ALL" >全部</option>
        <option value="MPP" selected>MPP存储</option>
        <option value="HAD-Hadoop">hadoop存储</option>
        <option value="OBS-Object Storage">对象存储</option>
</select>  
  • 只顾:option中的value属性并不支持为空,如若你把option的value属性设置为空的话,会现身别的情况
  <select id="queryContent2" data-am-selected="{btnWidth: '100%', btnSize: 'sm', btnStyle: 'am-btn am-btn-default'}">
        <option value="" selected>全部</option>
        <option value="MPP">MPP存储</option>
        <option value="HAD-Hadoop">hadoop存储</option>
        <option value="OBS-Object Storage">对象存储</option>
</select>  
<NavLink to="/" exact activeClassName="nav-active">首页</NavLink>

安装ClangFormat插件

能够手动安装(下载GitHub项目编写翻译),也能够用Alcatraz安装,都很简单,具体能够看本身的篇章《Xcode方便开拓的插件推荐》。

装好后是下图那样的,大家得以看来它放到了LLVMGoogleChromiumMozillaWebKit多种体制。

分分快三计划 20插件菜单

3. 利用js/jq操作select的选中项无效?

因为amazeui 中的select 组件,你在动用jq/js设置哪意气风发项被选中的,供给浏览重视新渲染以下下拉框,不然纵然选中项已经发生改变,页面上也不会即刻的翻新出来。

化解办法:

  • 官方网站的做法是:决断浏览器是不是帮助活动渲染的插件,就算有永不您管,若无就手动渲染
    使用 JS 操作

  • <select>(如增添选项、禁止使用选项、选中选项等卡塔尔,必要重新渲染下拉菜单。

  • 支持MutationObserver的浏览器会活动触发重新渲染;

  • 别的浏览器须要手动触发changed.selected.amui事件

  // 不支持 MutationObserver 的浏览器使用 JS 操作 select 以后需要手动触发 `changed.selected.amui` 事件
    if (!$.AMUI.support.mutationobserver) {
      $selected.trigger('changed.selected.amui');
    }

急需注意的是

// 使用 `attr()` 可以被 MutationObserver 观察到
$('select').find('option').eq(1).attr('selected', true);

// 以下操作不会被 MutationObserver 观察到
$('select').val('aa');
$('select').find('option').eq(1).prop('selected', true);
$('select').find('option')(1).selected = true;

此处给index的路由加叁个exact就足以了。

让风华正茂段代码不受格式化影响

借使想让生机勃勃段代码不受格式化影响,必要将她们带有在// clang-format off// clang-format on这两句注释之间,那样这段代码就不会被格式化,不过这两句注释本人是会被格式化的。

分分快三计划 21让生机勃勃段代码不受格式化影响

4. select的样式能够使用btnStyle,不过给定的那两种或然您都不太舒心,如何做?

率先种,小编试过直接在select标签上加上了style="xxx:xxx",发现这么并不起功效,尽管小编加了!important 也心有余而力不足蒙蔽原有的体裁;

其次中做法:找到amazeui.css那个文件,然后重新本身定义四个.am-btn-className的类,然后本人重写样式,那样你就可以直接使用btnStyle='className'的体制,进而实现你相要的功力。

其他做法 能够参照官方网址,有个重写样式的示范。

import React, {Component} from 'react';
import { BrowserRouter as Router, Route, NavLink } from "react-router-dom";
import './index.less';

import Index from '../../pages/Index';
import About from '../../pages/About';
import ProfessorList from '../../pages/ProfessorList';
// import logo from './logo.svg';

class TopBar extends Component {
    render() {
        return (
            <Router>
                <div className="container">
                    <div className="nav-bar">
                        <div className="logo">
                            {/*<img src={logo} className="App-logo" alt="logo" />*/}
                            华语智库
                        </div>
                        <ul>
                            <li>
                                <NavLink to="/" activeClassName="nav-active">首页</NavLink>
                            </li>
                            <li>
                                <NavLink to="/about" activeClassName="nav-active">关于我们</NavLink>
                            </li>
                            <li>
                                <NavLink to="/professor" activeClassName="nav-active">专家团队</NavLink>
                            </li>
                        </ul>
                    </div>
                    <div className="content">
                        <Route exact path="/" component={Index}/>
                        <Route path="/about" component={About}/>
                        <Route path="/professor" component={ProfessorList}/>
                    </div>
                </div>
            </Router>
        );
    }
}

export default TopBar;

动用自定义样式

1、需求先把地点菜单里面包车型客车File选中,因为我们必要让它用大家精诚团结写的配置文件。

分分快三计划 22选中File

2、在工程目录下开创布局文件.clang-format文件并编写制定。.clang-format文件用的是YAML格式:里面要用的字段在前边会详细分解。

key1: value1# 一个注释key2: value2

分分快三计划 23自定义样式格式化代码

自然如若您曾经有.clang-format文本的话,直接拖动到花色根目录也足以。随笔最终有自己在用的.clang-format文件。

//显示 隐藏文件defaults write com.apple.finder AppleShowAllFiles -bool truekillall Finder//隐藏 隐藏文件defaults write com.apple.finder AppleShowAllFiles -bool falsekillall Finder

此地遇到个别的的主题材料:

是或不是要做这些剖断浏览器是还是不是有MutationObserver?

作者照着示例,写了个判别,不过日常一贯都不可能进到这一个准绳里面,或者是自个儿的判别规范反常,亦或许是$ 符号与jquery存在冲突

之所以作者的做法是:无论浏览器是还是不是援救 MutationObserver,都给它加个手动渲染

$(选中的dom).trigger('changed.selected.amui');

如上,tab标签选中加了暗中同意样式,不过其余无论是怎么换,首页都以暗许选中的样式

动用办法

经过菜单能够看来,它能够格式化选中的文字们,或然格式化选拔的文本们。上面演示下LLVM体制下的格式化:

分分快三计划 24LLVM样式下的格式化

大局配置

地点大家是在档案的次序根目录创立的.clang-format文件,每一次建新项目都要有。如若您想让具有的类别公用壹个文书,把.clang-format文本放在全体品类都在的贰个最大根目录下就能够了。

本文由分分快三计划发布,转载请注明来源

关键词: 分分快三计划 代码 自定义 样式 妹子ui