Như với hầu hết mọi thứ, tôi chắc chắn rằng khái niệm này đã được thử trước đây - Tôi chỉ bắt gặp các biên tập viên sử dụng cái mà tôi gọi là 'Định dạng ảo'. Nguyên tắc là có một lề trái nổi mô phỏng hiệu ứng của các ký tự không gian / tab đệm được chèn bởi nhà phát triển hoặc chính trình soạn thảo để định dạng mã. Trình chỉnh sửa liên tục phân tích mã (ngay cả khi nhận xét) khi bạn nhập và tính toán thụt lề yêu cầu dựa trên ngữ cảnh nơi mỗi nguồn cấp dữ liệu được tìm thấy
Tôi đang phát triển ý tưởng này hoạt động cụ thể với trình soạn thảo XML vì XML có một số vấn đề đặc biệt với định dạng ký tự và nó có xu hướng được lồng rất nhiều, tuy nhiên tôi tin rằng nhiều nguyên tắc vẫn giữ cho mã thông thường.
Bạn có kinh nghiệm mã hóa với một công cụ như vậy hoặc bạn có một cái nhìn về việc nó sẽ giúp hoặc cản trở? Nó sẽ gây ra vấn đề với các hệ thống kiểm soát phiên bản? (nó phát hiện và loại bỏ tất cả các ký tự đệm hiện có)
Trừ khi bạn đã thử nó, hành vi của một công cụ như vậy rất khó để mô tả, nó trông có vẻ thông thường cho đến khi bạn thực sự bắt đầu chỉnh sửa. Tôi đã đưa lên một video screencast cho thấy một nguyên mẫu hoạt động thể hiện việc chỉnh sửa XML, thay đổi thứ bậc của nó và thực hiện các thao tác kéo / thả và sao chép và dán, sau đó cách định dạng bị hỏng / cố định khi nhập các ký tự không hợp lệ.
Chỉnh sửa Tất cả các câu trả lời / nhận xét cho đến nay đều tiêu cực - vì vậy, để cố gắng khắc phục sự cân bằng, một số lợi ích của định dạng ảo phải suy nghĩ về:
- Không còn tranh luận về các tiêu chuẩn định dạng, chỉ cần đặt nguồn cấp dữ liệu phù hợp với quy ước được chọn / bắt buộc của bạn
- Khi không gian ở mức cao (trong sách / blog / tài liệu), bạn có thể bọc từ nhưng vẫn nhận được sự thụt lề hoàn hảo
- Mỗi khối mã có thể có một 'tay cầm chuột' ngay lập tức liền kề với nơi nó bắt đầu, không bị ép vào cạnh màn hình - nhấp vào đây để chọn toàn bộ khối hoặc khối bên trong
- Kéo, thả và quên - lần đầu tiên trở nên khả thi
- Không có thời gian để định dạng lại mã người khác
- Không có mã được định dạng không chính xác (theo nghĩa là không có - chỉ là kết xuất)
- Sử dụng Backspace thay vì Ctrl + Backspace giữ ngón tay của bạn trên các phím hướng dẫn bàn phím
- Kết xuất linh hoạt - điều chỉnh định dạng kết xuất phù hợp với môi trường của bạn, có ai đã thử đọc mã trên điện thoại di động / máy tính bảng màn hình nhỏ không?
- Hãy xem xét rằng có ít hơn 25% ký tự có thể chỉnh sửa (trong XSLT mẫu), không có lợi ích hiệu quả?
Chỉnh sửa - Kết luận cho đến nay
Các nhà phát triển đã thiết lập các công cụ và phương pháp làm việc khắc phục hiệu quả hầu hết các nhược điểm vốn có trong việc sử dụng các ký tự đệm được sử dụng để thụt lề.
Có lo ngại rằng việc loại bỏ các ký tự định dạng sẽ gây ảnh hưởng xấu đến một số công cụ khác biệt.
Các nhà phát triển muốn linh hoạt để 'tinh chỉnh' định dạng theo cách mà kết xuất tự động không thể xử lý.
Việc loại bỏ các khoảng trắng / tab hàng đầu có nghĩa là một công cụ 'nhận biết mã' có khả năng định dạng mã là cần thiết để xem xét mã đó một cách hiệu quả - một trình soạn thảo văn bản đơn giản sẽ không hiển thị định dạng.
Những người cảm thấy có thể có một số lợi ích giả định (đối với thụt ảo), có quan điểm rằng những nhược điểm vượt trội hơn những lợi ích tiềm năng đó - một cách thuyết phục .
Chỉnh sửa - Phán quyết
Nhận thức về những trở ngại và một số lợi ích (nếu có) là điều không khôn ngoan đối với tôi, với tư cách là nhà phát triển duy nhất, theo đuổi khái niệm chỉnh sửa không gian này cho các ngôn ngữ chung. Tuy nhiên, đối với XML / XSLT (vì cách xử lý khoảng trắng đặc biệt của nó), dường như có một số thỏa thuận về tiềm năng ít nhất.
Chỉnh sửa - Sản phẩm được giao
Mặc dù tình cảm tiêu cực thường thấy ở đây, tôi đã đi trước và chuyển biên tập viên. Tôi đã tạo ra một phiên bản miễn phí với hy vọng nó sẽ mang lại sự chỉ trích dưới dạng các vấn đề cụ thể hơn, dựa trên kinh nghiệm thực tế. Hơi khó chịu, cho đến nay không có khiếu nại nào (thực tế hầu như không có phản hồi nào xem xét khối lượng tải xuống). Tôi muốn nghĩ rằng điều này là do người dùng đã điều chỉnh ý tưởng tốt đến mức họ thấy đây là một 'vậy thì sao?' loại tính năng - nhưng không có cách nào để nói ...