Nhận toàn bộ JS tự động hoàn thành trong Sublime Text


98

Tôi vừa cài đặt Sublime Text trong Windows Vista và thậm chí làm theo lời khuyên được đưa ra trong bài đăng này , cụ thể là để thiết lập rõ ràng View > Syntax > JavaScript > JavaScript, tôi chỉ thấy các đề xuất dựa trên những gì tôi đã nhập trước đó. Tôi thậm chí đã cài đặt plug-in SublimeCodeIntel , nhưng vô ích.

Theo tôi hiểu, tại thời điểm tôi viết "pars", tôi sẽ nhận được các tùy chọn "parseFloat" và "parseInt", như trong các công cụ dành cho nhà phát triển Chrome, phải không?

Cảm ơn!


8
năm 2015 này: tình hình không được cải thiện. Không có gì hoạt động ngoài hộp. Các biên tập viên 8 tuổi có tính năng tự động hoàn thành tốt hơn.
Muhammad Umer

Xem câu trả lời của tôi bên dưới, @MuhammadUmer. Cho đến nay nó hoạt động; ra khỏi hộp .. và đẹp.
Steve Meisner

1
@SteveMeisner - câu trả lời của bạn được thảo luận ở đây meta.stackoverflow.com/q/341163/73226
Martin Smith

1
Tôi đã trả lời với một câu trả lời chủ yếu là "chỉ liên kết" và nó đã bị đánh cắp. Nhưng ở đây là gói tuyệt vời tôi đã cho cho JS IntelliSense / autocompletion: github.com/pichillilorenzo/JavaScript-Completions
Steve Meisner

Chỉ trong trường hợp một người như tôi đối phó với vấn đề này. Đây là lý do tại sao tôi chuyển sang VS Code. Nó có tính năng Intellisense tuyệt vời này hoạt động tốt cũng như nhận được tự động hoàn thành trên các mô-đun JS. Cho đến nay tận hưởng nó.
Sergiy Ostrovsky

Câu trả lời:


77

Đề xuất (về cơ bản) dựa trên văn bản trong tệp đang mở hiện tại và bất kỳ đoạn trích hoặc phần hoàn chỉnh nào bạn đã xác định ( ref ). Nếu bạn muốn có thêm đề xuất văn bản, tôi khuyên bạn nên:

Lưu ý thêm, tôi thực sự khuyên bạn nên cài đặt Kiểm soát gói để tận dụng tối đa cộng đồng Sublime. Một số tùy chọn ở trên sử dụng Kiểm soát gói. Tôi cũng rất muốn giới thiệu các video hướng dẫn tutsplus Sublime , bao gồm tất cả các loại thông tin về việc cải thiện hiệu quả của bạn khi sử dụng Sublime.


1
Được ủng hộ và chấp nhận dựa trên bộ công cụ Emmet tuyệt vời! Đó là tâm trí thổi. Nó không biết gần như nhiều JS như trình kiểm tra web của Chrome, nhưng tôi đoán đó không phải là một điều tồi tệ. (Sau cùng, tôi muốn tăng cường trí nhớ cơ bắp của mình.) Mặt khác, công việc Emmet làm cho bạn thật tuyệt vời! Cảm ơn!
ezequiel-garzon 17/12/12

2
Rất vui vì nó hữu ích. Tôi hy vọng rằng bạn sẽ xem toàn bộ chuỗi hướng dẫn đó; có rất nhiều thứ tốt trong đó.
dbn

1
Nhưng nó không miễn phí: / có lẽ nó sớm hơn.
Jeff P Chacko

3
Tôi cảm thấy như đó là một quảng cáo cho trang tutsplus. Có thể ban đầu nó không phải nhưng tôi muốn xem các câu trả lời được liên kết không nằm sau tường phí.
dcmbrown

heh, yeah, tất cả đều miễn phí khi tôi xem chúng. Đang cập nhật câu trả lời cần lưu ý rằng những thứ này nằm sau tường phí.
dbn

66

Ternjs là một giải pháp thay thế mới để nhận tính năng tự động hoàn thành JS. http://ternjs.net/

Plugin Sublime

Plugin Tern được duy trì tốt nhất cho Sublime Text được gọi là 'tern_for_sublime'

Ngoài ra còn có một plugin cũ hơn được gọi là 'TernJS' . Nó không rõ ràng và chứa một số lỗi liên quan đến hiệu suất, khiến Sublime Text gặp sự cố, vì vậy hãy tránh điều đó.


2
Sự cố ST3. Dự án không được duy trì.
âm

1
Tôi chưa trải nghiệm điều đó, bạn đang sử dụng gói nào? Tôi đang sử dụng github.com/marijnh/tern_for_sublime
subhaze vào

2
Tôi khuyên bạn nên sử dụng một trong liên kết mà tôi đã cung cấp trong câu trả lời và trong nhận xét của tôi. Nó vẫn được duy trì.
subhaze vào

1
Tôi không thực sự thấy điều đó là 'mặn mà' nhưng tôi muốn chỉ ra rằng nhận xét của bạn không chính xác khi nói rằng plugin tôi liên kết đến không được duy trì. Vì nó có các bản cập nhật rất gần đây trên github.
subhaze

1
Mình đã cập nhật bình luận để hy vọng bớt / không mặn mà: / và khi đọc những bình luận này hy vọng mọi người sẽ không bị 'bẻ lái' mà đi đúng hướng.
subhaze

41

Như đã đề cập, tern.js là một dự án mới và đầy hứa hẹn với các plugin cho Sublime Text, Vim và Emacs. Tôi đã sử dụng TernJS cho Sublime được một thời gian và những đề xuất tôi nhận được tốt hơn những đề xuất tiêu chuẩn:

nhập mô tả hình ảnh ở đây

Tern quét tất cả các tệp .js trong dự án của bạn. Bạn có thể nhận hỗ trợ cho DOM, nodejs, jQuery, v.v. bằng cách thêm "libs" vào tệp .sublime-project của bạn:

"ternjs": {
    "exclude": ["wordpress/**", "node_modules/**"],
    "libs": ["browser", "jquery"],
    "plugins": {
        "requirejs": {
            "baseURL": "./js"
        }
    }
}

nhập mô tả hình ảnh ở đây


Trong ví dụ cuối cùng, tôi không nhận được đề xuất 'src' - Tôi vừa cài đặt (Sublime Text 3) và sử dụng cài đặt dự án của bạn.
Rune Jeppesen

2
Có hỗ trợ javascript kiểu ES6 (ES2015) không?
Dan Esparza

1
Yeah, khu vực dự án tern.js chứa một danh sách được hỗ trợ tính năng ES6
eosterberg

1
Đối với những gì nó đáng giá, bạn đang nói rằng bạn sử dụng "tern for sublime" nhưng nó liên kết đến plugin ternJS ... Tern for Sublime -> packagecontrol.io/packages/tern_for_sublime TernJS -> packagecontrol.io/packages/TernJS
subhaze

Tôi rất ngạc nhiên khi bạn nhận được thuộc tính selectIndex, vì createTag sẽ trả về một thẻ HTTP img. Ngoài ra, selectIndex thuộc về một thẻ HTTP được chọn, KHÔNG thuộc về img hoặc phần tử mẹ của nó. Bạn có thể nhận xét như vậy về cách bạn nhận được hai gợi ý đó không? Tôi tin là vì bạn đã sử dụng chúng trong các tệp khác chứ không phải vì JsTern có khả năng giải quyết lệnh gọi createElement khi đang chạy. Tuy nhiên, đề xuất đã chọnIndex không có ý nghĩa gì.
Alex


6

Tôi đã phát triển một plugin mới có tên là JavaScript Enhancements mà bạn có thể tìm thấy trên Package Control . Nó sử dụng Flow (trình kiểm tra loại tĩnh javascript từ Facebook).

Hơn nữa, nó cung cấp tính năng tự động hoàn thành javascript thông minh (so với các plugin JavaScript Hoàn thành plugin khác của tôi), lỗi thời gian thực , cấu trúc lại mã và cũng rất nhiều tính năng về tạo, phát triển và quản lý các dự án javascript .

Xem Wiki để biết tất cả các tính năng mà nó cung cấp!

Có thể tìm thấy phần giới thiệu về plugin này trong bài viết css-tricks.com này: Biến Sublime Text 3 thành một IDE JavaScript

Chỉ là một số ảnh chụp màn hình nhanh:


1
Chào Lorenzo. Tôi tò mò về dự án của bạn, nhưng tôi muốn có những lựa chọn nào để tùy chỉnh các phần hoàn chỉnh. Về cơ bản, tôi muốn có các đề xuất như docu> document, document.que> document.querySelector, v.v., nhưng không bao giờ gọi một hàm đầy đủ với các đối số và nhiều dòng như arr.forEa> arr.forEach((object,index,array) => { /* newline */ });, nếu điều đó hợp lý. Tôi có thể vô hiệu hóa điều đó bằng Các tính năng nâng cao của Javascript mà không cần phải chỉnh sửa thủ công tất cả các tệp hoàn thành không? Tôi đã vô hiệu hóa tất cả các lần hoàn thành vì tôi hơi ám ảnh với cấu trúc của mình.
ViggoV


1

Kiểm tra xem các đoạn mã có <tabTrigger>thuộc tính bắt đầu bằng các ký tự đặc biệt hay không. Nếu có, chúng sẽ không hiển thị trong hộp tự động hoàn thành. Đây hiện là sự cố trên Windows với các plugin jQuery có sẵn .

Xem câu trả lời của tôi trên chủ đề này để biết thêm chi tiết.

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.