2008-10-07 30 views
24

Tôi có Eclipse 3.3.2 với PDT đang phát triển PHP. Tất cả các dự án mà tôi tạo ra, thậm chí các dự án SVN có hoàn thành mã. Bây giờ tôi vừa mới mở một dự án SVN khác và nó không có mã hoàn thành hoặc các khuôn mẫu PHP (CTRL-không có gì trong dự án đó). Tuy nhiên, tôi có thể mở các dự án khác và hoàn thành mã tất cả hoạt động trong đó.Tại sao việc hoàn thành mã Eclipse không hoạt động trên một số dự án?

Tại sao hoàn thành mã và mẫu bị "tắt" chỉ trong một dự án và làm cách nào để tôi có thể bật lại?

Trả lời

42

Có lẽ Eclipse không hiểu dự án có "bản chất PHP". Thử so sánh tệp .project trên cả hai dự án để tìm sự khác biệt. Nó phải chứa một cái gì đó như:

<natures> 
    <nature>org.eclipse.php.core.PHPNature</nature> 
</natures> 

Tệp .project sẽ nằm trong vùng làm việc của bạn trong thư mục dự án.

+1

Vì kho lưu trữ có tệp .project trong đó, nó không cho tôi cơ hội mở nó bằng trình thủ thuật dự án PHP, chúng tôi đã xóa tệp .project, kiểm tra lại và tất cả đều ổn, cảm ơn! –

+1

Điều này vẫn không hiển thị chức năng tự động hoàn thành cho các hàm dựng sẵn PHP. –

+0

Cảm ơn rất nhiều! Điều đó chỉ làm cho tôi ngày. –

1

Đảm bảo tệp mở bằng "Trình chỉnh sửa PHP". Nhấp chuột phải vào tệp và chọn mở với để chọn trình chỉnh sửa phù hợp.

Nếu nó quay ra bạn đã sử dụng trình biên tập sai, bạn có thể thay đổi hiệp hội dưới Preferences »chung» Content loại

3

Tôi có cùng một vấn đề đôi khi. Đối với tôi, nó hoạt động để xây dựng lại dự án PHP với "Project" -> "Clean".

-1

Một giải pháp có thể bao gồm tệp php giả mà yêu cầu tất cả các lớp PHP của bạn. Vì vậy, trình phân tích cú pháp PHP cũng nhận ra các lớp này. Ví dụ giả file:

if(false) { 
    require_once 'class/one.php'; 
    require_once 'class/two.php'; 
    require_once 'class/three.php'; 
} 
0

tôi đã nhận thấy đôi khi bạn kiểm một dự án từ svn trong nhật thực (lật đổ hoặc subsclipe "kiểm một dự án như") và ngay cả khi bạn kiểm tra xem nó ra như một dự án php nó sẽ hoặc xóa tệp .project hoặc nó sẽ là một dự án chung. Tôi đã tìm thấy chỉ cần đi vào thư mục đó và xóa các .project .settings/và .cach/

Sau đó tạo một dự án php mới và trỏ thư mục mà bạn đã kiểm tra các tệp. Và bạn nên có mã hoàn thành và svn nên được liên kết đến repo của bạn.

5

Cảm ơn bạn! Tôi đã dành cả ngày để tìm hiểu lý do tại sao tôi không có mã hoàn thành ...

Vấn đề là nếu bạn tạo một dự án SVN tệp .project là tệp cơ bản không có tham chiếu codec. Bạn phải tạo một dự án PHP cơ bản và so sánh hai tệp và thay thế một phần bị thiếu trong dự án SVN.

Bây giờ tôi phải hoàn thành mã cho mỗi tập tin trong dự án, ngay cả đối với thư viện Zend Framework

0

Tôi đã có một vấn đề mà xây dựng con đường hoàn toàn trống rỗng, vì vậy không hoàn thành mã cho bất kỳ tập tin tôi đã cố gắng để chỉnh sửa. Đảm bảo bạn đã thiết lập đúng đường dẫn xây dựng của mình, đặc biệt nếu bạn đang liên kết nguồn từ một số vị trí khác với không gian làm việc.

Ví dụ như thư mục apache htdocs.

1

Nhấp chuột phải vào màn hình chỉnh sửa, goto Java -> Editor -> Content Assist -> Advanced ...chọn đề xuất phù hợp

6

Nhìn ra cho các .buildpath tập tin trong dự án của bạn ... đưa dòng này giữa thẻ:

<buildpathentry kind="con" path="org.eclipse.php.core.LANGUAGE"/>

Lưu nó và khởi động lại nhật thực. Bây giờ mọi thứ sẽ ổn ... Điều này làm việc cho tôi. :)

+0

Điều này, với sự thay đổi .project, là một phần thiếu để làm cho Eclipse hiển thị đúng chức năng tự động hoàn thành của cả hai hàm dựng sẵn và các công cụ của dự án. –

+0

điều này cũng đã làm cho các trick cho tôi –

0

Tôi đã giải quyết vấn đề này bằng cách bật trình chỉ mục Full C/C++ (Windows-> properties -> C/C++ -> Indexer) và cũng nhấn nút radio "Sử dụng cấu hình nút hoạt động". Sau đó làm sạch, và xây dựng tất cả.

đó đã làm việc trên Eclipse CDT 3.4

5

Nó chỉ là một dòng để thêm vào các tập tin .project và sau đó khởi động lại nhật thực để có được codecompletion: đâu nó nói

--- 
<natures> 
</natures> 
--- 

sau khi thay đổi phải là

--- 
<natures> 
    <nature>org.eclipse.php.core.PHPNature</nature> 
</natures> 
--- 

Điều đó nên làm.

+0

Vâng, nó hoạt động. Bản chất có thể được thay đổi từ menu ngữ cảnh -> Properties -> Project Propperties -> chọn PHP và nhấn OK –

0

Nếu bạn đến đây tìm kiếm mã hoàn thành trong nhật thực php không hoạt động, hãy đảm bảo dự án của bạn đang được hỗ trợ dưới dạng dự án php. Nhấp chuột phải vào dự án và sau đó đi đến cấu hình -> Thêm hỗ trợ php. Nếu bạn có cài đặt phù hợp để hỗ trợ mã, nó sẽ hoạt động ngay lập tức. Đôi khi người mới làm quen với tôi tinh chỉnh xung quanh với các dự án hoặc bắt đầu các dự án như là sạch sẽ và không phải là php để nhật thực không biết làm thế nào để đối xử với dự án.

1

ATTENTION

Bên cạnh những giải pháp đã được đề cập để có được toàn bộ sự giúp đỡ autocomplete để làm việc, có những đứa khác: nó có thể không được kích hoạt.

Chuyển đến cửa sổ> Thuộc tính rồi đến PHP> Trình soạn thảo> Hỗ trợ mã (JAVA có tùy chọn tương tự) và đặt "Bật tự động kích hoạt", tốt nhất là với độ trễ bạn thấy thoải mái (0ms). Nếu bạn bị làm phiền bởi chương trình đột nhiên quyết định làm việc cho bạn mà không cần nhắc nhở (và làm sai), hãy bỏ chọn "Chèn các đề xuất đơn một cách tự động" và bạn sẽ ổn.

2

Nếu bạn có vấn đề này, hãy làm theo các bước sau:

  • Chọn "PHP Include Path" trong cây dự án của bạn
  • Nhấp chuột phải vào nó sau đó bấm vào nút "Build Path> Configure Build Path"
  • Trên cửa sổ mở, thêm thư mục mà bạn muốn xây dựng, do đó, nó có thể hỗ trợ mã.

Thats tất cả :) Tôi hy vọng nó giải quyết vấn đề của bạn, tôi giải quyết của tôi một :)

+0

nó hoạt động cho dự án eclipse, nhưng khi tôi mở tập tin php cá nhân sử dụng eclipse, hoàn thành mã không hoạt động, làm thế nào để làm cho nó – n92

0

tôi phải kích chuột phải vào dự án trong PHP Explorer, đi đến "PHP Build Path". Cái này trống rỗng. Tôi nhấp vào "Thêm thư mục", chọn hộp kiểm bên cạnh thư mục gốc của dự án của tôi và nhấp "OK", sau đó "OK" một lần nữa.

Sau khi hoàn thành mã đó dường như hoạt động. Chỉ nên làm việc ra khỏi hộp nếu bạn hỏi tôi, nhưng bất cứ điều gì.

4

@Guido PHPNature không khắc phục điều này.

@Edward Tanguay Vâng, đó là bởi vì khi bạn tạo dự án PHP mới, nhật thực toàn phần cho biết thêm .buildpath nộp với

<?xml version="1.0" encoding="UTF-8"?><buildpath> 
<buildpathentry kind="src" path=""/> 
<buildpathentry kind="con" path="org.eclipse.php.core.LANGUAGE"/></buildpath> 

Khi bạn nhập hiện dự án bạn eclipse không tạo .buildpath tập tin, nhưng bạn có thể thêm nó bằng tay hoặc tạo dự án PHP mới với nguồn existin (bạn có thể chọn trong trình hướng dẫn).

+0

Tôi đã chỉ giải quyết vấn đề này (hoàn thành mã cho các lớp của tôi nhưng không phải là lõi PHP) trong gần một năm nay, và cuối cùng tôi đã chia nhỏ và sửa nó, nhờ mẹo của bạn về .buildpath - cảm ơn! – SteveK

+0

Chỉ cần một lưu ý vì tôi đang sử dụng một phiên bản mới hơn của Eclipse: Đi theo thuộc tính dự án và kiểm tra hộp bản chất PHP đã sửa nó cho tôi. Nó được đặt thành Web (chính) và js natures theo mặc định. Tôi đang sử dụng plugin Aptana Studio và Phiên bản Eclipse: 4.0.0.201206120848 – Logan

0

Kiểm tra thư viện dự án của bạn. Có thể bạn đã bao gồm hai tệp jar như vậy trong đó cùng một lớp có sẵn hoặc nói một lớp trong mã có thể được định vị lại trong hai tệp jar. Trong trường hợp này, nhật thực cũng dừng hỗ trợ mã vì nó hoàn toàn bị nhầm lẫn. Cách tốt hơn để kiểm tra điều này là đi đến tập tin mà trợ giúp không hoạt động và nhận xét tất cả nhập khẩu ở đó, hơn nhập từng cái một và kiểm tra từng lần nhập nếu hỗ trợ mã đang hoạt động hay không. Bạn có thể dễ dàng tìm thấy class với refrences trùng lặp.

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