2010-09-05 27 views
1

vim/gvim的哪些插件可以報告關於格式不正確的問題esp C++代碼和PLSQL代碼。像:自動格式化或在VIM中發生錯誤的工具

  1. 空行後。
  2. 具有超過80個字符的行(如「匹配」)。
  3. void foo(int x,int y);然後它會報告忘記了一個空格後,
  4. 還有更多像上面的格式錯誤。

在檢入CVS之前是否有任何標準的做法來報告代碼的格式?

+0

CVS簽到(我的吊))檢查您可能想要打開另一個問題。爲了得到明確的答案,請一次專注於單個問題。附:而且由於CVS的標籤不存在,您不會從可能正在觀看標籤的人那裏獲得太多關注。 – Dummy00001 2010-09-06 12:39:24

+0

@Dummy: - 謝謝。我將爲CVS簽入開一個新問題。 – 2010-09-07 06:38:35

回答

4

就我而言,我定義了一系列語法規則來使這些事情容易被發現。

highlight ImproperSyntax ctermbg=red guibg=red 
au BufWinEnter * syn match ImproperSyntax /\s\+$\| \+\ze\t/ "Spaces at the end of lines or BEFORE tabs 
au Filetype cpp,c syn keyword ImproperSyntax dynamic_cast "disallowed keyword 
au Filetype cpp,c syn match ImproperSyntax /[^\n]\%$/ display "Last line should be blank 
au Filetype cpp,c syn match ImproperSyntax /\t/ display "No tabs! 
au Filetype cpp,c syn match ImproperSyntax /,\S/ display "comma always has a space 
au Filetype cpp,c syn match ImproperSyntax /\%80v.*$/ "Highlight any characters passed column 80 

你可以使用一個額外的技巧是所有這些結合到一個函數(或列表/字典),並將其顯示爲一個錯誤或者在狀態行(我的偏好),或者根據用戶的錯誤。

關於檢查CVS ...我不確定CVS,但SVN和HG(可能大多數其他版本控制系統)可以被指示在執行一系列'pre-commit hooks'之前允許你承諾。其中一個可以很容易地編程爲掃描相同的行爲(可能還有某種重寫符號)。

+0

嵌入式編程項目,主要是用「C with classes」風格的C++完成的。如果您在代碼庫中看到dynamic_cast,則某人不理解演員所做的事情。 (我們的代碼充斥着不適當的reinterpret_cast,我對它的顏色不太嚴重),我個人更喜歡一些更常用的語言功能可用,例如堆會很好。 – jkerian 2010-09-06 18:02:58

+0

對於使用'reinterpret_cast'而不是'dynamic_cast'的人來說,我會**更多的擔心(因爲這更可能突出對C++投射的誤解)。如果我想阻止使用'dynamic_cast',我只需在我的編譯器選項中禁用RTTI。但這是*方式*脫離這個答案的話題! – Johnsyweb 2010-09-06 22:51:41

相關問題