2010-02-03 32 views
5

Trong VS 2008, có đoạn mã XML có vẻ khá tuyệt vời :) Tuy nhiên, có vẻ như các đoạn mã mà chúng tôi tạo không thụt lề đúng cách. Ví dụ, nếu chúng ta có đoạn mã sau:VS Số đoạn mã gián điệp 2008 Mã số

{ 
    ... 
    { 
    ... 
     { 
      InsertSnippet here. 

Chúng tôi nhận được một cái gì đó như:

{ 
    ... 
    { 
    ... 
     { 
      FirstLineofSnippet 
SecondLineOfSnippet 
ThirdLineOfSnippet 

Có cách nào để làm cho nó để tất cả các dòng giữ thụt đầu dòng giống nhau không?

+4

'Ctrl-K, D' sẽ thực hiện mẹo =) –

+0

@Rubens - không ai có ý tưởng nào tốt hơn, vì vậy hãy trả lời và tôi sẽ cung cấp cho bạn tín dụng để có câu trả lời đúng. – Daniel

+0

hãy giữ điều này trong vài ngày nữa; bạn có thể tạo ra một tiền thưởng trong một vài ngày và, có thể, ai đó khác sẽ đưa ra một ý tưởng. –

Trả lời

0

dán dòng đầu tiên mà không thụt đầu dòng, sau đó chọn khối và tab cho đến khi bạn nhận được toàn bộ khối đến thụt đầu dòng mà bạn muốn. AFAIK những gì bạn thấy là hành vi tiêu chuẩn và điều đó xảy ra vì vị trí bạn dán không bị thụt lề theo ý bạn.

0

My unit test snippet dường như được thụt lề một cách chính xác. Có thể là do mã được gói trong khối CDATA. VisualStudio cũng có xu hướng tự động định dạng khối ngay sau khi nó được thêm vào mã. Đoạn mã của bạn có nhiều dấu ngoặc mở như đóng không? Nếu cả hai khớp với nhau và đoạn mã được chèn vào vị trí hợp lệ/có thể kết hợp, nó sẽ tự động định dạng.

0

Hãy thử swithing Insert spaces-Keep tabs trong Tools>Options>TextEditor>C#>Tabs, nó làm việc cho tôi.

0

Dường như Visual Studio thực hiện định dạng tự động trên các dòng được chèn. Đoạn mã của tôi không được định dạng chính xác (ví dụ: thụt lề), không phải bằng cách chèn đoạn trích, cũng như bằng định dạng thủ công (Ctrl-K-F). Nó chứa "delegate {...}", có thể trình định dạng không thể xử lý điều này.

4

Điều này thường cho biết mã bạn đang chèn là không đúng ngữ nghĩa - tại thời điểm chèn, không phải khi bạn điền vào các giá trị đoạn mã.

Để ngăn chặn điều này, bạn có thể sử dụng các giá trị mặc định trong đoạn mã của mình để làm cho cú pháp được biên dịch chính xác. Ví dụ. để khai báo danh sách đối số cho hàm:

<Literal Editable="true"> 
    <ID>methodArguments</ID> 
    <ToolTip>methodArguments</ToolTip> 
    <Default>params object[] args</Default> 
    <Function> 
    </Function> 
</Literal> 

<Default> Phần tử cung cấp khai báo. Vì vậy, sử dụng điều này trong một đoạn tuyên bố một funciton sẽ dẫn đến điều này:

public void FunctionName(params object[] args) { } 

Và sau đó nó cho phép bạn thay thế params object[] args với bất cứ lý lẽ tờ khai mà bạn cần.

Các vấn đề liên quan