2009-06-15 18 views
5

Tôi nghĩ Xcode là một IDE tốt, nhưng đã từng sử dụng Eclipse để phát triển Java trong quá khứ tôi khá thất vọng bởi việc hoàn thành mã XCode và phản hồi lỗi/cảnh báo. (Hầu hết thời gian, XCode dường như chỉ đơn giản là cố gắng để phù hợp với sự khởi đầu của một đoạn văn bản để "từ" trong cùng một tài liệu, mà không cần sử dụng thông tin loại để cố gắng xác định sự phù hợp của một hoàn thành được đề xuất.)IDE không phải XCode cho Cocoa?

bất cứ ai có ý tưởng hay thủ thuật để làm cho XCode tiếp cận sự thông minh của Eclipse, hoặc để phát triển thực tế các ứng dụng Cocoa với các IDE khác: s hơn XCode?

EDIT: Worth giữ một mắt về điều này: code.google.com/p/objectiveclipse/

+3

Có những câu hỏi tương tự về thay thế cho Xcode dành cho iPhone, nhưng có nó phức tạp bởi App Store sẽ không áp dụng các ứng dụng không được xây dựng trên XCode. –

+0

Làm cách nào để xác định được IDE mà ứng dụng được xây dựng? – Felixyz

+0

Đối với những người quan tâm đến chủ đề này, tôi đưa liên kết này vào tiện ích Accessorizer, một cách giúp đỡ XCode thông minh: www.kevincallahan.org/software/accessorizer.html – Felixyz

Trả lời

7

Tin vui là, Apple đang khắc phục sự cố. Một trong những mục tiêu của dự án biên dịch clang là tạo ra một trình phân tích cú pháp có thể tái sử dụng có thể được sử dụng để hoàn thành mã và hỗ trợ tái cấu trúc mã tốt hơn. Chỉ ra rằng điều này đã sinh ra trái cây trong hạt giống Snow Leopard mới nhất.

+0

Clang là một điều đẹp, đẹp. Phần Compilers tại WWDC gần như khiến một số người trong chúng tôi rơi nước mắt. Hoặc ít nhất rất nhiều tràng pháo tay. –

+0

Ah, vâng. Tôi đã đọc về clang, nhưng quên nó đi. Đối với những người quan tâm, có một chút nền thú vị ở đây: http://etoileos.com/news/archive/2009/03/31/1640/ Đây cũng là dấu hiệu cho thấy rằng đối tượng không phải của Apple-C/Mã hóa có nguồn gốc từ NS còn sống và đá. Điều này đã được thảo luận ở nơi khác trên SO: http://stackoverflow.com/questions/874690/is-objective-c-only-used-for-development-on-mac-os-iphone – Felixyz

+0

Mục tiêu của Apple cho LLVM và Clang (một số trong số họ dài hạn) bao gồm thay thế hoàn toàn GCC cho hầu như tất cả các trường hợp. Thiết kế mô-đun cho phép các đầu vào có thể cắm được (trong đó Clang là một) và tách riêng việc phân tích cú pháp từ tối ưu hóa và tạo mã hoàn toàn. Thật tuyệt vời khi thấy động lượng và thực tế là tất cả nguồn mở đều tốt hơn. –

1

emacs và/hoặc vim

+0

và/hoặc TextMate và/hoặc KDevelop hoặc [trình chỉnh sửa yêu thích của ai đó]. Yeah ... nhưng làm thế nào về việc thúc đẩy việc sử dụng đề xuất của một trình soạn thảo/IDE cụ thể? – Felixyz

+0

Tôi sẽ * yêu * để xem và những người đam mê emacs/vim sao lưu những tuyên bố như vậy. Không có mã (đúng) hoàn thành, hãy để một mình biên dịch dự đoán. Trình soạn thảo văn bản chỉ được coi là IDE bởi những người nghĩ rằng GUI là một mốt nhất thời cuối cùng sẽ chết. KDevelop thực sự là một IDE (cho KDE), nhưng nó hầu như không hỗ trợ Objective-C, hãy để một mình các tính năng biên dịch tiên tiến. –

+0

@Quinn Tôi muốn bạn phải đối mặt với một chuyên gia emacs/vim (không phải tôi) với lũ lụt của các phím tắt, macro và plugin. Giả sử mỗi người biết những gì họ đã làm lập trình khôn ngoan, tôi tự tin rằng emacs/vim chuyên gia sẽ có thể mã vòng tròn xung quanh một IDE điển hình những gì với cách nhấp chuột của nó. :-P Mặc dù mặt khác, tôi thích Firefox như một sự thay thế cho lynx. – samoz

2

Tôi đã chắc chắn cảm thấy đau đớn của bạn - như một nhà phát triển Java kinh nghiệm và thường xuyên sử dụng Eclipse, tôi đã muốn cho chính tôi cũng vậy. Thật không may, tôi không biết bất cứ điều gì phù hợp với hóa đơn. Tôi không nghĩ rằng có bất kỳ độ phân giải thỏa đáng nào đối với this SO question.

Tuy nhiên, tôi nghĩ bạn sẽ khá hài lòng với những cải thiện về việc hoàn thành mã Xcode sắp có trong Snow Leopard - thông minh hơn nhiều về việc lọc danh sách các lần hoàn thành có thể có. Ngoài ra, có những tiện ích mới để mã hóa, chẳng hạn như chèn một khung bắt đầu khi bạn quên một, vv Theo hiểu biết của tôi, vẫn không có bản dịch dự đoán nào như Eclipse.

Có ai biết về IDE ngoài Eclipse hỗ trợ tính toán dự báo và báo cáo/cảnh báo lỗi không? Bản thân Eclipse có hỗ trợ tính năng này cho các ngôn ngữ khác ngoài Java, chẳng hạn như C++ không? Tôi đã tự hỏi liệu một thực tế là Java được xây dựng với các tệp .java độc lập hơn là các tệp .h và .c/.cpp/.m làm cho việc biên dịch dự đoán trở nên đơn giản hơn. Ngoài ra, bất cứ điều gì được biên dịch với gcc đòi hỏi sự quan tâm và chú ý hơn một chút so với lệnh javac tương đối đơn giản hơn. Có suy nghĩ gì không?

+1

XCode thực hiện biên dịch dự báo để cải thiện hiệu suất xây dựng. Nó chỉ không sử dụng rất tốt thông tin mà nó lướt qua. Tôi không tin rằng có bất kỳ chăm sóc đặc biệt cần thiết cho việc biên dịch gcc ngoài javac. Mỗi .o được biên dịch độc lập, vì vậy không có gì đặc biệt xảy ra trong quá trình biên dịch dự đoán. –

+1

Tôi cũng nghĩ về việc liệu Java có dễ dàng thực hiện việc biên dịch dự đoán hơn, ví dụ như Objective-C hay không, nhưng thực sự không thể nghĩ ra bất cứ điều gì (ngoại trừ, tất nhiên, đối với mã ObjC động loại an toàn). Như Ahruman đã đề xuất, việc đọc về Clang cung cấp thêm ngữ cảnh. – Felixyz

+1

Rất đúng. Xcode cũng đã tạo ra các lệnh gcc. Dường như một phần của vấn đề là chính gcc - nó nằm dưới GPL, điều này hạn chế Apple tích hợp nó thật sự một cách liền mạch mà không làm cho chính mã nguồn mở của Xcode. Việc gõ động thậm chí sẽ không gây ra vấn đề gì, bởi vì những gì bạn thực sự quan tâm là tính chính xác trong ngữ cảnh của Objective-C, không phải điều gì sẽ đúng trong Java hoặc bất kỳ ngôn ngữ nào khác. Tôi nghĩ rằng khi Clang đi chủ đạo và cuối cùng thay thế gcc trong Xcode, chúng ta sẽ thấy các tính năng như thế này xuất hiện. (Hy vọng cho ngày đó ...) –

5

Rất đơn giản: không.

Bạn có thể thực hiện gần như tất cả mọi thứ bằng tay bằng trình soạn thảo văn bản yêu thích của mình nhưng không được khuyến nghị. Hãy thử thiết kế giao diện không có Trình tạo giao diện ví dụ.

Lời khuyên của tôi sẽ chỉ là gắn bó với Xcode và học cách làm việc của mình. Có, nó sẽ khác và đôi khi có thể không "tốt hơn" trong đôi mắt của bạn. Tự điều khiển trong thực tế là Apple đã quản lý để phát hành một số sản phẩm tuyệt vời bằng cách sử dụng Xcode.

Trải nghiệm cá nhân của tôi là, mỗi khi tôi sử dụng Xcode, tôi tìm thấy một mẹo mới mà tôi có thể thêm vào túi của mình. Xcode là đầy đủ hơn nhiều tính năng hơn so với những gì bạn có thể nghĩ lúc đầu (hoặc thứ hai) nháy mắt.

+0

Tôi đã nhận thấy rằng các tính năng đã được thêm đều đặn như những năm trôi qua. Vẫn còn các tính năng trong Eclipse, VisualStudio, v.v. mà tôi ghen tị, và tôi hy vọng sẽ thấy chúng trong Xcode (hy vọng sớm hơn là sau này). Điều đó nói rằng, cũng có những lĩnh vực mà Xcode thổi đi các IDE khác. Gót chân Achilles của Eclipse có lẽ là tạo và quản lý các dự án và không gian làm việc, nó là một hog màn hình bất động sản đáng kinh ngạc, và các plugin thường mất kiểm soát. Tôi đã không được sử dụng VS thường xuyên, đủ để chọn chi tiết, nhưng giải pháp/dự án cấu hình đã được chắc chắn khó hiểu khi tôi đã sử dụng nó. –

+1

Tôi đồng ý về Eclipse: bất cứ khi nào tôi cố gắng sử dụng bất cứ thứ gì ngoài khả năng cốt lõi, tôi đã thất vọng. Giống như Radana của Aptana ... Đó là một cơn ác mộng. Tôi thậm chí đã có vấn đề về việc tích hợp SCM hoạt động bình thường trong Eclipse. Nhưng nơi nó tỏa sáng, nó chắc chắn đặt ra một tiêu chuẩn. – Felixyz

+0

Tôi đã từng thử cài đặt Eclipse và sử dụng nó để phát triển Ruby on Rails. Không bao giờ, một lần nữa. Đó là một cơn ác mộng hoàn toàn và tôi đã lãng phí nhiều ngày trong cuộc đời mình để làm cho nó hoạt động. Đó là chậm, rườm rà, trông khủng khiếp và các plugin là khủng khiếp để thiết lập. –

2

Tôi đã lồng tiếng dài rants about what's wrong with Xcode (và điều gì không sai với Xcode). Nhưng bạn thực sự không muốn sử dụng một công cụ khác. Và không phá vỡ NDA: Xcode 3.2 với SnowLeopard: Hoan hô. (So ​​với những gì chúng tôi có, không so với những gì chúng tôi có thể.)

Điều đó nói rằng, với câu hỏi ban đầu của bạn về hoàn thành mã, cá nhân tôi tắt hoàn thành tự động theo yêu cầu hoàn thành theo yêu cầu. Tôi thấy nó hữu ích hơn và ít bị phân tâm hơn.Trong bảng Code Sense, đặt "Automatically Suggest" thành "Never" và chắc chắn rằng hai tùy chọn khác được chọn ("Hiển thị đối số trong danh sách bật lên" và "Insert place placeholders ...") Việc này sẽ hoàn thành trong một hộp bật lên khi bạn nhấn Escape, giúp bạn dễ dàng cuộn qua tìm kiếm những gì bạn muốn. Tôi thấy rằng tôi phải gõ ít hơn rất nhiều theo cách này, đặc biệt là cho các phương pháp không phải là duy nhất cho nhiều nhân vật. 80% thời gian, nó đã làm nổi bật điều đúng đắn.

0

Xcode có một số nhận thức ngữ cảnh, khi bạn đang gửi thư đến một đối tượng, thông thường danh sách "ESC" sẽ đưa ra các đối số có ý nghĩa.

Một điều tôi khuyên bạn nên xem xét các macro văn bản. Đây không phải là loại thực sự nhận thức, nhưng họ có thể tiết kiệm một tấn gõ - ví dụ, sau khi @implementation loại "init" và sau đó nhấn control-. (dấu chấm) để kích hoạt macro văn bản. Nó sẽ điền một phương thức init cho bạn. Bạn có thể tạo của riêng bạn, hoặc ghi đè lên các macro hiện có.

2

Kiểm tra IDE mới của JetBrains được gọi là "Mã ứng dụng". Nó vẫn còn trong chương trình Early Access, nhưng ngay cả với các lỗi Early Access nó là tay xuống tốt hơn so với xcode 4.

http://www.jetbrains.com/objc/

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