6

Tôi đang cố gắng viết một chế độ emacs mới cho một ngôn ngữ mẫu mới giống như c, mà tôi phải sử dụng cho một số nghiên cứu học thuật.Chế độ Emacs cho ngôn ngữ giống như c

Tôi muốn mã để có màu và thụt vào như trong c-mode, với những ngoại lệ sau:

  • Các '%' không được sử dụng như một nhà điều hành, nhưng như ký tự đầu tiên trong một số từ khóa cụ thể (như: "% p", "% hành động", v.v.)
  • Các dòng mã không kết thúc bằng dấu chấm phẩy.

Có thể tạo chế độ dẫn xuất (từ chế độ c) và đặt nó để bỏ qua mục đích ban đầu của '%' và ';'? Có thể làm cho tính năng "thụt lề tự động sau khi nhấn RET" hoạt động mà không có ';' không?

Có chế độ tương tự cho các ngôn ngữ tương tự (với dấu ngoặc vuông '{}', nhưng không có dấu chấm phẩy) mà tôi có thể thử vá không?

Tôi có nên thử viết một chế độ chính từ đầu không?

Tôi đã nghĩ đến việc vá chế độ R từ http://ess.r-project.org/, nhưng chế độ này không hỗ trợ nhận xét về biểu mẫu "/ * comment * /".

Tính năng quan trọng nhất mà tôi đang tìm kiếm là dấu ngoặc nhọn, tức là mã thụt lề bên trong khối '{}' sau khi nhấn RET (và không có thụt lề thêm sau các dòng không kết thúc bằng ';'). Một phần giải pháp sẽ giúp quá.

Trả lời

2

Nếu bạn không nhớ điều gì đó thực sự đơn giản, bạn có thể xem Gosu mode. Gosu là một ngôn ngữ có dấu ngoặc nhọn và không có dấu chấm phẩy, vì vậy bạn nên được đặt cho mức tối thiểu của mình. Nó cũng sử dụng cú pháp nhận xét giống như C.

Việc thực hiện chế độ cho nó là thực sự đơn giản và dựa trên chế độ chung, do đó, sửa đổi nó để hoạt động theo cách bạn muốn sẽ dễ dàng. Đó là không phải dựa trên chế độ C.

Đây là những gì tôi đã sử dụng để tạo ra một chế độ cho ngôn ngữ tôi đang làm việc cho lớp trình biên dịch của mình, và nó thực sự dễ dàng ngay cả với kinh nghiệm hạn chế. Mặt khác, thụt đầu dòng khá đơn giản - nó hoạt động với hầu hết mã, nhưng không hoàn chỉnh như chế độ C-mode.

+0

Thay vì sử dụng chế độ Gosu, tôi đã sử dụng chế độ [Google Go] (http://golang.org) và vá nó. – Oren

2

Check-out Arduino-mode: https://github.com/bookest/arduino-mode/blob/master/arduino-mode.el

Nó là một C dựa chế độ sử dụng các tính năng cc chế độ để nhanh chóng tạo ra một cái gì đó rất hữu ích và độc đáo để Arduino lập trình. Sử dụng mẫu này làm mẫu đơn giản sẽ giúp ích rất nhiều.

3

Nói chung, chế độ CC đã được mở rộng và tổng quát theo thời gian để chứa nhiều ngôn ngữ hơn, và chế độ CC mới nhất được cho là khá hợp lý khi cô lập mã chung từ mã ngôn ngữ cụ thể. Vì vậy, hãy xem một số chế độ chính sử dụng chế độ CC (ví dụ: chế độ awk) và giữ liên lạc với người bảo trì của CC-mode, người sẽ có thể giúp bạn tìm ra hwo để làm những gì bạn muốn.

+0

Tôi đã thử vá chế độ CC theo chế độ awk (trong đó các dòng không phải kết thúc bằng ';') nhưng đó là quá nhiều mã để hiểu và sửa lỗi. – Oren

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