如何使VS代码自动检测我键入的语言并更改语言模式?

时间:2018-06-05 04:42:33

标签: php visual-studio-code vscode-settings

我正在创建一个包含HTML,CSS,JAVASCRIPT,PHP,MYSQL

的项目

现在我在使用Aptana Studio 3年后使用VScode。

那么如何让VScode检测我输入的语言并自动更改模式呢?

示例:

我在html代码中使用php脚本,但文件的扩展名是.php 当我在<?php ?>区域内编码时自动检测到并将语言模式更改为php时如何制作vscode,当我在<?php ?>区域外编码时,会自动检测到并将语言模式更改为html,例如,当我键入<style></style>之类的标签并开始在其中输入时,会自动检测并将语言模式更改为css。

此解决方案或任何解决方案是否有任何扩展名?

不过,这个功能是在aptana工作室

3 个答案:

答案 0 :(得分:2)

根据文档,似乎您所要求的内容不存在:

  

在VS Code中,我们根据文件扩展名默认语言支持。但是,有时您可能希望更改语言模式,要执行此操作,请单击位于状态栏右侧的语言指示器。这将打开“选择语言模式”下拉列表,您可以在其中为当前文件选择另一种语言。

基于此,您可以理解VS Code的语言检测是基于文件扩展名的。但是你可以associate languages with file extensions。根据文件:

  

例如,下面的设置会将.myphp文件扩展名添加到php语言标识符中:

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.view.Gravity;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageButton;
import android.widget.MediaController;

public class FullScreenMediaController extends MediaController {

private ImageButton fullScreen;
private String isFullScreen;

public FullScreenMediaController(Context context) {
    super(context);
}

@Override
public void setAnchorView(View view) {

    super.setAnchorView(view);

    //image button for full screen to be added to media controller
    fullScreen = new ImageButton (super.getContext());

    FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    params.gravity = Gravity.RIGHT;
    params.rightMargin = 80;
    addView(fullScreen, params);

    //fullscreen indicator from intent
    isFullScreen =  ((Activity)getContext()).getIntent().
            getStringExtra("fullScreenInd");

    if("y".equals(isFullScreen)){
        fullScreen.setImageResource(R.drawable.ic_fullscreen_exit);
    }else{
        fullScreen.setImageResource(R.drawable.ic_fullscreen);
    }

    //add listener to image button to handle full screen and exit full screen events
    fullScreen.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent intent = new Intent(getContext(),Video1.class);

            if("y".equals(isFullScreen)){
                intent.putExtra("fullScreenInd", "");
            }else{
                intent.putExtra("fullScreenInd", "y");
            }
            ((Activity)getContext()).startActivity(intent);
        }
    });
  }
}

就像那样,您可以将常用语言与常用文件扩展名相关联。

答案 1 :(得分:1)

vscode 1.59 中的自动语言检测:

<块引用>

无标题文件的自动语言检测

我们很高兴地宣布自动语言的初始预览 使用机器学习检测无标题文件 您正在编码的语言并自动设置语言 无标题文件的模式。此功能利用开源 ML 库、Tensorflow.js 和 ML 来自 GitHub Guesslang 的模型 用户 @yoeo

在此版本中,此功能将默认关闭,但我们计划在 使其成为默认的下一次迭代。要启用它,请应用 以下设置:

"workbench.editor.untitled.experimentalLanguageDetection": true 
<块引用> <块引用>

注意:如果语言检测不够自信,那么您将保持当前的语言模式,并且不会在 语言选择器,直到语言检测更有信心。这 设置还允许您提供可以使用的语言覆盖 指定您不想自动切换的语言模式 离。给出这个例子:


"workbench.editor.untitled.experimentalLanguageDetection": true

 "[markdown]": {
   "workbench.editor.untitled.experimentalLanguageDetection": false 
} 
<块引用>

自动语言检测不会在您编辑文本时运行 未命名的降价文件。但是,如果您正在修改一个未命名的 任何其他类型的文件,自动语言检测运行 这些文件的内容。

我们已经将与 ML 模型交互的代码分离成自己的 库作为 npm 包发布,它存在于 the vscode-languagedetection repo 中。

https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_59.md#automatic-language-detection-of-untitled-files查看更多

答案 2 :(得分:0)

VS Code可以通过修改files.associations属性来自动检测语言扩展。

点击control + P并搜索settings.json。打开该文件并更改以下行:

"*.php": "properties""*.php": "php"