2009-02-16 37 views
12

Tôi đang tìm kiếm thành phần Textbox nổi bật cú pháp, tốt nhất là miễn phí, với nguồn và có khả năng được sử dụng trong Winforms, ASP.NET và WPF. Ngoài ra, nó sẽ hỗ trợ không chỉ hiển thị, mà còn chỉnh sửa nội dung.Hộp văn bản tô sáng cú pháp cho Winforms, ASP.NET, WPF

Tôi đã phát hiện ra tuyệt vời, miễn phí ActiPro SyntaxHighlighter for ASP.NET nhưng đó là không may CHỈ cho ASP.NET và nó chỉ hiển thị văn bản trong các câu lệnh của cách, nó không có khả năng chỉnh sửa .....

Tôi cũng biết của Thành phần ICSharp Text Editor là một phần của SharpDevelop nhưng đó là một giải pháp độc lập, nhưng chỉ có Winforms.

Có ai biết một thành phần có lõi để xử lý cú pháp làm nổi bật (có thể định cấu hình không, vì vậy tôi có thể sử dụng nó cho mã C#, XML và HTML và hơn thế nữa) và có ba "giao diện" cho Winforms , ASP.NET và WPF? Tôi thực sự muốn có ONE lõi nâng hạng nặng và ba giao diện người dùng trên chia sẻ hàng đầu mã lõi đó ...

Bất kỳ gợi ý và gợi ý nào đều được hoan nghênh!

Trả lời

6

Tôi với bạn marc: Tôi muốn thấy một khung làm nổi bật cú pháp mở rộng có thể tạo ra một đối tượng "tài liệu" được mã hóa được hiển thị thông qua các điều khiển cho mỗi khung hiển thị. Bằng cách này, trình phân tích cú pháp/trình thông báo có thể được viết một lần!

Điều tốt nhất tôi có thể nói là this thread gợi ý rằng ActiProSoftware đang làm việc trên điều khiển WPF cho công cụ đánh dấu cú pháp của chúng.

2

Tất cả các nền tảng đó hoàn toàn khác nhau và mỗi nền tảng đều có phương pháp hiển thị kết xuất của riêng chúng. Vì vậy, sẽ không có bất kỳ kiểm soát phổ quát nào làm tất cả. Mỗi nền tảng sẽ có một kiểm soát riêng biệt

Tuy nhiên, một nền tảng có thể thực hiện kiểm soát web và sử dụng nó trong một trang. Sau đó, một đối tượng trình duyệt trong winforms hoặc wpf có thể sử dụng địa chỉ trang để hiển thị nó

+4

Ồ, tôi hoàn toàn hiểu được * vẽ * phần không thể giống nhau cho tất cả - nhưng tất cả những thứ khác, như các quy tắc, phần nào để làm nổi bật với màu gì, và phát hiện từ khóa, v.v., tất cả đều có thể được chia sẻ ..... –

3

Có thể xem xét CodeMirror mục cho web. Rõ ràng điều này sẽ không làm việc cho WPF như bạn đã hỏi, nhưng nó sẽ làm việc cho bất kỳ khuôn khổ web nào - Webforms, ASP.NET MVC, HTML thuần túy, PHP và những thứ khác.

CodeMirror là một thư viện JavaScript có thể được sử dụng để tạo giao diện trình soạn thảo tương đối dễ chịu cho nội dung giống như mã - chương trình máy tính, đánh dấu HTML và tương tự. Nếu trình phân tích cú pháp đã được viết cho ngôn ngữ bạn đang chỉnh sửa (xem bên dưới để biết danh sách các ngôn ngữ được hỗ trợ), mã sẽ được tô màu và trình chỉnh sửa sẽ giúp bạn thụt lề.

parsers cho:

  • Javascript
  • XML/HTML
  • CSS
  • HTML chế độ hỗn hợp
  • SPARQL
  • HTML + PHP chế độ hỗn hợp
  • Python
  • Lua
  • của Ruby
  • SQL
  • PLSQL
  • diff
  • Groovy
  • C#
  • Scheme
  • Java
  • XQuery
  • OmetaJS
  • Freemarker

Thực hiện:

<textarea rows="30" cols="120" id="someCode" > 
    //some comments 
    var foo = "bar"; 
</textarea> 

Bạn bao gồm 2 .js tài liệu tham khảo, và sau đó bit này của JavaScript thay thế các yếu tố textarea của bạn với cú pháp mới nhấn mạnh yếu tố.

<script type="text/javascript"> 
    var textarea = document.getElementById('someCode'); 
    var editor = new MirrorFrame(CodeMirror.replace(textarea), { 
     height: "350px", 
     content: textarea.value, 
     parserfile: ["tokenizejavascript.js", "parsejavascript.js"], 
     stylesheet: "css/jscolors.css", 
     path: "js/", 
     autoMatchParens: true 
    }); 
</script> 

The CodeMirror manual helps.

Cũng nên có WikiPedia entry for Comparison of JavaScript-based source code editors

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