PhpStorm 不会自动完成 JavaScript 本机方法或属性

PhpStorm does not autocomplete JavaScript native methods or properties

提问人:Madara's Ghost 提问时间:12/15/2013 最后编辑:Madara's Ghost 更新时间:6/7/2020 访问量:2006

问:

我使用 PhpStorm,我注意到在编写 JavaScript 时,IDE 不会自动完成 PhpStorm 类型应该知道的变量的本机方法或属性。

var checkButton = document.forms.addSeller.check;
checkButton.onclick = function(e) {
    e.preventDefault();
    var request = new XMLHttpRequest;
    request.open("POST", "/seller");
    request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    request.onload = function() {
        if (request.readyState == 4) {
            if (request.status == 200) {
                var response = JSON.parse(request.responseText);
                console.log(response);
                var target = document.getElementById("seller_info");
                var image = document.createElement("img");
                image.src = response.logo;
                image.id = "seller_logo";
                target.appendChild(image);
            }
            else {
                alert("Problem!");
            }
        }
    };
    request.send("seller=" + document.forms.addSeller.seller.value);
}

方法 (, , ) 或属性 (, ) 均未自动完成。.preventDefault().open().setRequestHeader().onload.onclick

据我所知,设置看起来不错,但我没有找到特定的 JavaScript 自动完成设置。

有人知道我怎样才能重新启用它吗?PhpStorm 100% 知道它们是什么对象,因为它可以很好地进行语法高亮和错误报告,并且当我使用方法/属性时,它会在正确的符号上打开 PhpStorm 的内部语法文件。CTRL+Click

JavaScript 自动完成 IDE phpstorm

评论

0赞 CrazyCoder 12/16/2013
请尝试 | | .如果不起作用,请附加一个完整的示例项目进行重现。FileInvalidate CachesInvalidate and Restart
0赞 lena 12/16/2013
如果使缓存无效没有帮助,请附上您的想法.log - 可能有一些错误影响完成
0赞 Madara's Ghost 12/16/2013
@CrazyCoder:使缓存失效效果很好。请考虑将其作为答案发布,以便我可以接受它并用虚假的互联网积分和 cookie 来淋浴。

答:

2赞 CrazyCoder 12/16/2013 #1

请尝试 | |,在出现此类奇怪问题时通常会有所帮助。FileInvalidate CachesInvalidate and Restart

0赞 husmen73 7/21/2017 #2
    2017-07-21 16:18:35,129 [ 290368]  ERROR - on.CompletionProgressIndicator - PhpStorm 2017.2  Build #PS-172.3317.83 
2017-07-21 16:18:35,129 [ 290368]  ERROR - on.CompletionProgressIndicator - JDK: 1.8.0_152-release 
2017-07-21 16:18:35,129 [ 290368]  ERROR - on.CompletionProgressIndicator - VM: OpenJDK 64-Bit Server VM 
2017-07-21 16:18:35,129 [ 290368]  ERROR - on.CompletionProgressIndicator - Vendor: JetBrains s.r.o 
2017-07-21 16:18:35,129 [ 290368]  ERROR - on.CompletionProgressIndicator - OS: Mac OS X 
2017-07-21 16:18:35,129 [ 290368]  ERROR - on.CompletionProgressIndicator - Last Action: CodeCompletion 
2017-07-21 16:18:35,275 [ 290514]  ERROR - on.CompletionProgressIndicator - null 
java.lang.NullPointerException
    at com.jetbrains.php.lang.psi.resolve.types.PhpParameterBasedTypeProvider.isMeta(PhpParameterBasedTypeProvider.java:318)
    at com.jetbrains.php.lang.inspections.suppression.PhpSuppressionUtil.isSuppressedFor(PhpSuppressionUtil.java:49)
    at com.jetbrains.php.lang.inspections.suppression.PhpInspectionSuppressor.isSuppressedFor(PhpInspectionSuppressor.java:12)
    at com.intellij.codeInspection.InspectionProfileEntry.isSuppressed(InspectionProfileEntry.java:167)
    at com.intellij.codeInspection.InspectionProfileEntry.isSuppressedFor(InspectionProfileEntry.java:82)
    at com.intellij.lang.javascript.frameworks.webpack.WebpackInJavaScriptJsonSchemaProvider.isWebpackInspectionAllowed(WebpackInJavaScriptJsonSchemaProvider.java:87)
    at com.intellij.lang.javascript.frameworks.webpack.WebpackInJavaScriptJsonSchemaProvider.isAvailable(WebpackInJavaScriptJsonSchemaProvider.java:51)
    at com.intellij.lang.javascript.json.JsonSchemaInJavaScriptCompletionContributor.lambda$fillCompletionVariants$0(JsonSchemaInJavaScriptCompletionContributor.java:24)
    at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)
    at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
    at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
    at com.intellij.lang.javascript.json.JsonSchemaInJavaScriptCompletionContributor.fillCompletionVariants(JsonSchemaInJavaScriptCompletionContributor.java:25)
    at com.intellij.codeInsight.completion.CompletionService.getVariantsFromContributors(CompletionService.java:81)
    at com.intellij.codeInsight.completion.CompletionResultSet.runRemainingContributors(CompletionResultSet.java:149)
    at com.intellij.codeInsight.completion.CompletionResultSet.runRemainingContributors(CompletionResultSet.java:142)
    at com.intellij.codeInsight.template.impl.LiveTemplateCompletionContributor$2.addCompletions(LiveTemplateCompletionContributor.java:88)
    at com.intellij.codeInsight.completion.CompletionProvider.addCompletionVariants(CompletionProvider.java:36)
    at com.intellij.codeInsight.completion.CompletionContributor.fillCompletionVariants(CompletionContributor.java:150)
    at com.intellij.codeInsight.completion.CompletionService.getVariantsFromContributors(CompletionService.java:81)
    at com.intellij.codeInsight.completion.CompletionService.performCompletion(CompletionService.java:110)
    at com.intellij.codeInsight.completion.CompletionProgressIndicator.a(CompletionProgressIndicator.java:839)
    at com.intellij.codeInsight.completion.CompletionProgressIndicator.access$600(CompletionProgressIndicator.java:92)
    at com.intellij.codeInsight.completion.CompletionProgressIndicator$1CalculateItems.run(CompletionProgressIndicator.java:821)
    at com.intellij.codeInsight.completion.AsyncCompletion.a(CompletionThreading.java:108)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:939)
    at com.intellij.codeInsight.completion.AsyncCompletion.b(CompletionThreading.java:105)
    at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:170)
    at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:548)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:493)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:94)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:157)
    at com.intellij.codeInsight.completion.AsyncCompletion.a(CompletionThreading.java:103)
    at com.intellij.openapi.application.impl.ApplicationImpl$2.run(ApplicationImpl.java:343)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
2017-07-21 16:18:35,275 [ 290514]  ERROR - on.CompletionProgressIndicator - PhpStorm 2017.2  Build #PS-172.3317.83 
2017-07-21 16:18:35,275 [ 290514]  ERROR - on.CompletionProgressIndicator - JDK: 1.8.0_152-release 
2017-07-21 16:18:35,275 [ 290514]  ERROR - on.CompletionProgressIndicator - VM: OpenJDK 64-Bit Server VM 
2017-07-21 16:18:35,275 [ 290514]  ERROR - on.CompletionProgressIndicator - Vendor: JetBrains s.r.o 
2017-07-21 16:18:35,275 [ 290514]  ERROR - on.CompletionProgressIndicator - OS: Mac OS X 
2017-07-21 16:18:35,275 [ 290514]  ERROR - on.CompletionProgressIndicator - Last Action: CodeCompletion 

这是我的日志文件。

我的示例代码。

<script>
            $(function () {
                $("form#form_newGorevAdd").on("submit", function (e) {
                    e.preventDefault();

                    var $form = $(this);


                    document. /////// THIS IS PROBLEM. phpstorm doesnt show a list. 


                    $ajaxFullLoader.fadeIn(500);
                    $.ajax({
                        url: 'admin/ajax/gorev/add',
                        type: 'POST',
                        data: $form.serialize(),
                        success: function (data) {
                            $ajaxFullLoader.fadeOut(500);

                            if(data.status === 1){
                                $form[0].reset();
                                $("#newGorevAdd").modal("close");
                                swal({
                                    title: "Başarılı!",
                                    html: data.message,
                                    type:"success"
                                });
                                table_gorevList.ajax.reload();
                            }
                            else{
                                if(data.errors && data.errors.length > 0)
                                    $.fn.ajaxError(data.errors.join("<br />"));
                                else
                                    $.fn.ajaxError();
                            }
                        }
                    });
                });
            });
        </script>

此问题与省电模式无关。

此错误发生在 PhpStorm 2017.2 上

PhpStorm 2017.2
Build #PS-172.3317.83, built on July 18, 2017
Subscription is active until November 25, 2017
For educational use only.
JRE: 1.8.0_152-release-915-b5 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Mac OS X 10.12.5

并在 PhpStorm 2017.1 上自动完成工作

此外,php自动完成工作得很好。此文件是包含 javascript 代码的 php 文件。我用标签拆分了 php 和 html/javascript 代码

如果文件扩展名为 .js则它可以使用自动完成。我的文件有 .php ext,包含 php、html 和 javascript 代码。

0赞 Netfly 6/7/2020 #3

我知道,这个话题很旧,但我在 PhpStorm 2020.1 中遇到了同样的问题。JetBrains 的支持帮助我解决了这个问题。

我的问题是,我使用了 typoscript-plugin (TYPO3)。文件类型 *.ts 已添加到 typoscript 文件中,并在 typescript 中删除。

所以我不得不再次将 *.d.ts 添加到打字稿中(我仍然使用 *.ts 作为打字稿)。不知何故,intellij 使用 *.d.ts 文件进行代码完成。至少对于 JS 来说。

在那之后,一切都像魅力一样工作。