code-prettify

2014年8月7日 星期四

AngularJS - angular-ui-router 實現 Nested Views 及 Multiple Views

在試著使用 AngularJS 實作 Kuroneko Idle Game 時遇到了問題,
ngRoute 不支持 巢狀 View 及多重 View 的實現。
幸好在 Google 上找到了救兵 ui-router,以下是兩種寫法的差別。

ngRoute 寫法:
app.js config:
index.html:
ui-router 寫法:
app.js config:
index.html:
main.html (新增):
這麼一來就完成了巢狀 View 的實作。

Reference
GitHub - angular-ui/ui-router

2014年8月5日 星期二

C# StyleCop 忽略特定檔案名稱

忽略特定檔案名稱

今天遇到一個問題,編譯檔案後進行 StyleCop 檢查時出現:
TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs(1,1)
TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs(1,1)
TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs(1,1)

看起來是自動產生的檔案,但是卻會造成 StyleCop 檢查失敗,
這時候可以手動加上 StyleCop 忽略檔案規則。

到 StyleCop 安裝目錄底下 (預設安裝路徑是 C:\Program Files (x86)\StyleCop 4.7),
使用文字編輯器開啟 Settings.StyleCop 檔案。

檔案內容預設如下:

<StyleCopSettings Version="4.3">
  <GlobalSettings>
    <CollectionProperty Name="DeprecatedWords">
      <Value>preprocessor,pre-processor</Value>
      <Value>shortlived,short-lived</Value>
    </CollectionProperty>
  </GlobalSettings>
  <Parsers>
    <Parser ParserId="StyleCop.CSharp.CsParser">
      <ParserSettings>
        <CollectionProperty Name="GeneratedFileFilters">
          <Value>\.g\.cs$</Value>
          <Value>\.generated\.cs$</Value>
          <Value>\.g\.i\.cs$</Value>
        </CollectionProperty>
      </ParserSettings>
    </Parser>
  </Parsers>
  <Analyzers>
    <Analyzer AnalyzerId="StyleCop.CSharp.NamingRules">
      <AnalyzerSettings>
        <CollectionProperty Name="Hungarian">
          <Value>as</Value>
          <Value>do</Value>
          <Value>id</Value>
          <Value>if</Value>
          <Value>in</Value>
          <Value>is</Value>
          <Value>my</Value>
          <Value>no</Value>
          <Value>on</Value>
          <Value>to</Value>
          <Value>ui</Value>
        </CollectionProperty>
      </AnalyzerSettings>
    </Analyzer>
  </Analyzers>
</StyleCopSettings>

找到其中一段 CollectionProperty ,預設已經有三行設定,
新增一行,如下:

          <Value>\.g\.cs$</Value>
          <Value>\.generated\.cs$</Value>
          <Value>\.g\.i\.cs$</Value>
          <Value>TemporaryGeneratedFile_.*\.cs$</Value>

存檔後,重新編譯一次專案,OK,沒有錯誤訊息了。


補充,如果想要忽略 *.pb.cs 這樣的規則,
加入下列這一行:

          <Value>\.pb\.cs$</Value>


Reference
TemporaryGeneratedFile_[guid] in /obj/debug breaking build

設定 Chrome Canary 設為預設瀏覽器

本來就有使用 Chrome 當主要瀏覽器,
所以當我安裝了 Chrome Canary 之後,
發現設定頁無法將 Chrome Canary 設定為預設瀏覽器,

顯示訊息為:
這是您第二次安裝「Google Chrome」,您無法將它設定為預設瀏覽器。

想說第二次安裝同樣是 Chrome 系列的瀏覽器,覺得這樣蠻正常的。



過了一陣子,當我重灌電腦之後,
直接選擇 Chrome Canary 來安裝,卻也是同樣的狀況,
這樣就不對了吧。

上網查了之後,才知道 Canary 這個版本會有這個限制,聽說沒有打算要處理。
幸好,可以透過註冊檔 (Regiest) 來設定。
可以到這個網頁 Make Google Chrome Canary the Default Web Browser 來下載,
最底下有個 Download REG File (Manual) ,下載解壓縮後,
用文字編輯器開啟 Registry.reg 找出 YourUsernameHere 文字,
並且用自己的使用者名稱取代,有三個地方,
改完存檔後,直接點擊檔案執行,完成。