Làm cách nào để ngăn Script Editor cuộn (và mất vị trí con trỏ) khi biên dịch?


3

Tôi có một số tập tin .scpt dài. Bằng "dài dòng", tôi đang nói số lượng nhân vật (không bao gồm khoảng trắng) là 200.000.

Tôi sử dụng Script Editor.app để tạo và chỉnh sửa AppleScripts (đơn giản vì Script Editor đã được cài đặt).

Nếu tôi lưu một tệp dài trong Script Editor (ví dụ: bằng cách nhấn ⌘ command+ S), tệp sẽ hầu như luôn cuộn xuống nhiều hơn trong tệp. Kết quả là tôi đã bị xóa khỏi vị trí trong tập lệnh nơi tôi vừa chỉnh sửa và con trỏ văn bản của tôi bị mất. Nếu tôi nhập một số văn bản ngay sau khi lưu, văn bản được đặt ở dòng cuối cùng của tài liệu.

Vì vậy, tôi phải dành một chút thời gian để cố gắng tìm dòng hoặc vùng mã mà tôi vừa chỉnh sửa. Tôi tiết kiệm thường xuyên, vì vậy thời gian này cộng lại đáng kể.

Để làm cho vấn đề tồi tệ hơn, sau khi lưu, thanh cuộn trong Script Editor bị lỗi và thất thường trong khoảng 30 giây. Điều này làm cho việc cuộn bằng tay phần lớn phản tác dụng. Đôi khi khoảng thời gian thất thường này lên đến một phút.

Kết hợp lại, hai lỗi này dẫn đến một trải nghiệm tiết kiệm và mất thời gian.

Kịch bản duy nhất mà tôi đã thấy hai vấn đề này hoàn toàn biến mất là khi kịch bản ngắn. Như trong, đủ ngắn để không sở hữu một thanh cuộn nào.

Tôi thường không có nhiều chương trình chạy trên máy tính của mình khi tôi đang sử dụng Script Editor và chúng không bao giờ là các ứng dụng được yêu cầu. Tôi thường có một vài cửa sổ Chrome, một vài cửa sổ TextEdit, một cửa sổ Script Editor và đó là nó. Máy của tôi là MacBook Pro Retina đầu năm 2013 với 16 GB RAM.

Tập lệnh Script Editor này có bình thường không? Có bất cứ điều gì tôi có thể làm để giảm thiểu nó?


Có, đó là hành vi bình thường trong (Apple) Script Editor thông qua OS X 10.11.6 và như được đề cập trong câu trả lời của wch1zpink, nó không có trong macOS Sierra.
dùng3439894

Câu trả lời:


1

Tôi vừa thử những gì bạn đã giải thích với trình chỉnh sửa tập lệnh ở Sierra và không gặp phải vấn đề tương tự bạn đang gặp phải. Đây có thể không phải là giải pháp tốt nhất cho câu hỏi của bạn nhưng chắc chắn sẽ giúp bạn tiết kiệm thời gian. Tại sao không chỉ đưa ra một nhận xét nhỏ tại vị trí trong tập lệnh mà bạn muốn con trỏ của mình nằm sau khi lưu tệp. Chỉ cần thêm một cái gì đó như --cursorvà sao chép nhận xét --cursorvào bảng tạm của bạn sau đó sau khi bạn thực hiện ⌘ command+ S, sau đó tiếp tục và nhấp vào ⌘ command+ F(sẽ mở trường tìm ngay trong cửa sổ trình chỉnh sửa tập lệnh của bạn), sau đó bạn có thể nhấp vào ⌘ command+ V(sẽ tự động dán đoạn ngắn đó dòng nhận xét vào trường tìm) tất nhiên điều này sẽ làm nổi bật văn bản đó trong tập lệnh của bạn và đưa bạn đến đúng vị trí của nó.


CẬP NHẬT - TIẾP CẬN KHÁC NHAU

Chỉ cần thêm trình xử lý này vào dưới cùng của bất kỳ tệp tập lệnh nào của bạn. (Tôi muốn đặt trình xử lý của mình ở dưới cùng của tập lệnh để giữ cho chúng không làm lộn xộn phần còn lại của phần thân của tập lệnh)

Gọi trình xử lý tại bất kỳ điểm nào trong tập lệnh của bạn cuối cùng sẽ nhận được tọa độ của thanh cuộn của bạn, sau đó nó sẽ tự động lưu tập lệnh hiện tại bằng lệnh mã khóa, sau đó sẽ đưa thanh cuộn của bạn trở lại tọa độ ban đầu. Chỉ cần bình luận hoặc bỏ bình luận cuộc gọi của người xử lý tùy thuộc vào việc bạn muốn lưu hay không lưu tài liệu của bạn. Để lại cuộc gọi của trình xử lý như chưa nhận xét Như tôi đã đặt bây giờ, Sẽ tự động lưu tập lệnh của bạn mỗi khi bạn nhấp vào nút RUN RUN RÀNG trong trình chỉnh sửa tập lệnh.

on setScrollPosition()
    tell application (path to frontmost application as text) to (path to me as text)
    set theFile to result
    set theFile2 to alias theFile
    tell application "Finder"
        set theName to name of theFile2
    end tell
    delay 1
    tell application "System Events"
        get value of value indicator 1 of scroll bar 1 of scroll area 1 of splitter group 1 of splitter group 1 of window theName of application process "Script Editor"
        set thePosition to the result
        key code 1 using command down
        delay 10
        set value of value indicator 1 of scroll bar 1 of scroll area 1 of splitter group 1 of splitter group 1 of window theName of application process "Script Editor" to thePosition
    end tell
end setScrollPosition

setScrollPosition()

GHI CHÚ: Tôi có bộ độ trễ 5 giúp tôi có thời gian chơi xung quanh với vị trí cuộn sau khi nhấp vào Run Run để xem nó có thực sự hoạt động hay không (trong phiên bản mới nhất của Sierra), bạn có thể điều chỉnh giá trị độ trễ hoặc bình luận nếu bạn không cần nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.