VS Code擴充--Language Support for Java(TM) by Red Hat(1.3.0)

shadow_D發表於2022-02-07

Language Support for Java(TM) by Red Hat(1.3.0)

注意:版本問題,可能會有部分出入

功能目錄

設定

  • java.home

    作用

    指定用於啟動 Java 語言伺服器的 JDK (11或更近版本)的資料夾路徑。在 Windows 上,反斜槓必須轉義

    "java.home":"C:\\Program Files\\Java\\jdk11.0_8"
    

    預設值null

  • java.jdt.ls.java.home

    作用

    指定用於啟動Java語言伺服器的JDK(11或更近版本)的資料夾路徑。此設定將替換Java擴充套件的嵌入式JRE以啟動Java語言伺服器。在Windows上,反斜槓必須轉義

    "java.jdt.ls.java.home":"C:\\Program Files\\Java\\jdk11.0_8"
    

    預設值null

  • java.jdt.ls.vmargs

    作用

    指定用於啟動Java語言伺服器的額外VM引數

    "java.jdt.ls.vmargs":"-XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx1G -Xms100m"
    // 優化並行垃圾收集器的記憶體使用
    

    預設值-XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx1G -Xms100m

  • java.errors.incompleteClasspath.severity

    作用

    指定Java檔案的類路徑不完整時訊息的嚴重性

    "java.errors.incompleteClasspath.severity": "warning"
    

    預設值warning

  • java.configuration.checkProjectSettingsExclusions

    作用

    控制是否從檔案管理器中排除擴充套件生成的專案設定檔案(.project, .classpath, .factorypath, .settings/)

    "java.configuration.checkProjectSettingsExclusions": true
    

    預設值true

  • java.configuration.updateBuildConfiguration

    作用

    指定對生成檔案的修改如何更新Java類路徑/配置

    "java.configuration.updateBuildConfiguration": "interactive"
    

    預設值interactive

  • java.trace.server

    作用

    跟蹤VS程式碼與Java語言伺服器之間的通訊

    "java.trace.server": "off"
    

    預設值off

  • java.import.maven.enabled

    作用

    啟用/禁用 Maven 匯入器

    "java.import.maven.enabled": true
    

    預設值true

  • java.import.gradle.enabled

    作用

    啟用/禁用 Gradle 匯入程式

    "java.import.gradle.enabled": true
    

    預設值true

  • java.import.gradle.wrapper.enabled

    作用

    使用 gradle-wrapper.properties 檔案中的Gradle

    "java.import.gradle.wrapper.enabled": true
    

    預設值true

  • java.import.gradle.version

    作用

    如果Gradle包裝丟失或禁用,請使用特定版本的Gradle

    "java.import.gradle.version": null
    

    預設值null

  • java.import.gradle.home

    作用

    如果Gradle包裝器丟失或禁用且沒有指定 java.import.gradle.version ,請從指定的本地安裝目錄或 Gradle_HOME 使用 Gradle

    "java.import.gradle.home": null
    

    預設值null

  • java.import.gradle.offline.enabled

    作用

    啟用/禁用 Gradle離線模式

    "java.import.gradle.offline.enabled": false
    

    預設值false

  • java.import.gradle.arguments

    作用

    要傳遞給 Gradle的引數

    "java.import.gradle.arguments": null
    

    預設值null

  • java.import.gradle.jvmArguments

    作用

    要傳遞給 Gradle的JVM引數

    "java.import.gradle.jvmArguments": null
    

    預設值null

  • java.import.gradle.user.home

    作用

    設定 GRADLE_USER_HOME

    "java.import.gradle.user.home": null
    

    預設值null

  • java.maven.downloadSources

    作用

    作為匯入Maven專案的一部分,啟用/禁用Maven源工件的下載

    "java.maven.downloadSources": false
    

    預設值false

  • java.eclipse.downloadSources

    作用

    為Eclipse專案啟用/禁用Maven原始碼工件的下載

    "java.eclipse.downloadSources": false
    

    預設值false

  • java.maven.updateSnapshots

    作用

    強制更新快照

    "java.maven.updateSnapshots": false
    

    預設值false

  • java.referencesCodeLens.enabled

    作用

    啟用/禁用參考CodeLens(顯示引用)

    "java.referencesCodeLens.enabled": false
    

    預設值false

  • java.signatureHelp.enabled

    作用

    啟用/禁用識別標誌幫助

    "java.signatureHelp.enabled": false
    

    預設值false

  • java.implementationsCodeLens.enabled

    作用

    啟用/禁用例項CodeLens(顯示引用)

    "java.implementationsCodeLens.enabled": false
    

    預設值false

  • java.configuration.maven.userSettings

    作用

    設定 Maven 使用者配置檔案(settings.xml)的路徑

    "java.configuration.maven.userSettings": null
    

    預設值null

  • java.configuration.maven.globalSettings

    作用

    設定 Maven 全域性配置檔案(settings.xml)的路徑

    "java.configuration.maven.globalSettings": null
    

    預設值null

  • java.configuration.maven.notCoveredPluginExecutionSeverity

    作用

    指定外掛執行不在Maven build lifecycle範圍內時的嚴重性

    "java.configuration.maven.notCoveredPluginExecutionSeverity": "warning"
    

    預設值warning

  • java.configuration.workspaceCacheLimit

    作用

    • 保留未使用的工作區快取資料的天數(如果啟用)

    • 超過此限制後,快取的工作區資料可能會被刪除

    "java.configuration.workspaceCacheLimit": null
    

    預設值null

  • java.format.enabled

    作用

    啟用/禁用預設Java格式化程式

    "java.format.enabled": true
    

    預設值true

  • java.saveActions.organizeImports

    作用

    啟用/禁用儲存操作時自動組織匯入

    "java.saveActions.organizeImports": false
    

    預設值false

  • java.import.exclusions

    作用

    • 配置排除資料夾的全域性模式
    • 使用 ! 取消模式以允許子資料夾匯入,你必須包含一個父目錄
    • 順序很重要
    "java.import.exclusions": "**/node_modules/**,**/.metadata/**,**/archetype-resources/**,**/META-INF/maven/**"
    

    預設值**/node_modules/**,**/.metadata/**,**/archetype-resources/**,**/META-INF/maven/**

  • java.import.generatesMetadataFilesAtProjectRoot

    作用

    指定是否在專案根目錄下生成專案後設資料檔案 (.project, .classpath, .factorypath, .settings/) 單擊此處瞭解如何更改設定以使其生效

    "java.import.generatesMetadataFilesAtProjectRoot": false
    

    預設值false

  • java.project.referencedLibraries

    作用

    配置glob模式,以便將本地庫引用到Java專案

    "java.project.referencedLibraries": "lib/**/*.jar"
    

    預設值lib/**/*.jar

  • java.project.outputPath

    作用

    • 儲存編譯輸出的工作空間的相對路徑
    • 僅在工作區範圍內有效
    • 該設定不會影響Maven或Gradle專案
    "java.project.outputPath": 
    

    預設值:``

  • java.project.sourcePaths

    作用

    • 儲存原始檔的工作區的相對路徑
    • 僅在工作區範圍內有效
    • 該設定不會影響Maven或Gradle專案
    "java.project.sourcePaths": 
    

    預設值:``

  • java.contentProvider.preferred

    作用

    你喜歡的Content Providers(通常是第三方反編譯器id)

    "java.contentProvider.preferred": null
    

    預設值null

  • java.autobuild.enabled

    作用

    啟用/禁用"自動生成"(auto build)

    "java.autobuild.enabled": true
    

    預設值true

  • java.maxConcurrentBuilds

    作用

    最大同步專案構建數

    "java.maxConcurrentBuilds": 1
    

    預設值1

  • java.recommendations.dependency.analytics.show

    作用

    顯示推薦的依賴項分析擴充套件

    "java.recommendations.dependency.analytics.show": true
    

    預設值true

  • java.completion.maxResults

    作用

    • 最大完成結果數(不包括程式碼段)
    • 0(預設值)禁用該限制,將返回所有結果
    • 在效能問題的情況下,考慮設定一個合理的限制
    "java.completion.maxResults": 0
    

    預設值0

  • java.completion.enabled

    作用

    啟用/禁用程式碼補全支援

    "java.completion.enabled": true
    

    預設值true

  • java.completion.overwrite

    作用

    • 設定為true時,程式碼補全將覆蓋當前文字
    • 當設定為false時,只需新增程式碼即可
    "java.completion.overwrite": true
    

    預設值true

  • java.completion.guessMethodArguments

    作用

    當設定為true時,當從程式碼輔助方案列表中選擇方法時,會猜測方法引數

    "java.completion.guessMethodArguments": false
    

    預設值false

  • java.completion.favoriteStaticMembers

    作用

    定義靜態成員或具有靜態成員的型別的列表。即使缺少匯入,Content assist也會推薦這些靜態成員

    "java.completion.favoriteStaticMembers": "org.junit.Assert.*,org.junit.Assume.*,org.junit.jupiter.api.Assertions.*,org.junit.jupiter.api.Assumptions.*,org.junit.jupiter.api.DynamicContainer.*,org.junit.jupiter.api.DynamicTest.*,org.mockito.Mockito.*,org.mockito.ArgumentMatchers.*,org.mockito.Answers.*"
    

    預設值org.junit.Assert.*,org.junit.Assume.*,org.junit.jupiter.api.Assertions.*,org.junit.jupiter.api.Assumptions.*,org.junit.jupiter.api.DynamicContainer.*,org.junit.jupiter.api.DynamicTest.*,org.mockito.Mockito.*,org.mockito.ArgumentMatchers.*,org.mockito.Answers.*

  • java.completion.filteredTypes

    作用

    • 定義型別過濾器。在內容輔助或快速修復方案中以及在組織匯入時,將忽略其完全限定名稱與所選篩選器字串匹配的所有型別
    • 例如 java.awt.* 將對awt包隱藏所有型別
    "java.completion.filteredTypes": "java.awt.*,com.sun.*,sun.*,jdk.*,org.graalvm.*,io.micrometer.shaded.*"
    

    預設值java.awt.*,com.sun.*,sun.*,jdk.*,org.graalvm.*,io.micrometer.shaded.*

  • java.completion.importOrder

    作用

    • 定義匯入語句的排序順序
    • 包或型別名稱字首(例如“org.eclipse”)是有效的條目
    • 匯入始終新增到最特定的組
    "java.completion.importOrder": "java,javax,com,org"
    

    預設值java,javax,com,org

  • java.foldingRange.enabled

    作用

    啟用/禁用智慧摺疊範圍支援。如果禁用,它將使用 VS Code 提供的預設基於縮排的摺疊範圍

    "java.foldingRange.enabled": true
    

    預設值true

  • java.progressReports.enabled

    作用

    [實驗性]啟用/禁用伺服器上後臺程式的進度報告

    "java.progressReports.enabled": true
    

    預設值true

  • java.format.settings.url

    作用

    指定Eclipse格式化程式xml設定的url或檔案路徑

    "java.format.settings.url": null
    

    預設值null

  • java.format.settings.profile

    作用

    Eclipse格式化程式設定中的可選格式化程式配置檔名稱

    "java.format.settings.profile": null
    

    預設值null

  • java.format.comments.enabled

    作用

    包括程式碼格式化期間的註釋

    "java.format.comments.enabled": true
    

    預設值true

  • java.format.onType.enabled

    作用

    在鍵入 ; 時啟用/禁用自動塊格式 <輸入>}

    "java.format.onType.enabled": true
    

    預設值true

  • java.codeGeneration.hashCodeEquals.useJava7Objects

    作用

    • 使用 Objects.hashObjects.equals 時生成生成 hashCodeequals methods
    • 此設定僅適用於Java 7及更高版本
    "java.codeGeneration.hashCodeEquals.useJava7Objects": false
    

    預設值false

  • java.codeGeneration.hashCodeEquals.useInstanceof

    作用

    在生成hashCode和equals方法時,使用 instanceof 比較型別

    "java.codeGeneration.hashCodeEquals.useInstanceof": false
    

    預設值false

  • java.codeGeneration.useBlocks

    作用

    生成方法時,在“if”語句中使用塊

    "java.codeGeneration.useBlocks": false
    

    預設值false

  • java.codeGeneration.generateComments

    作用

    生成方法時生成方法註釋

    "java.codeGeneration.generateComments": false
    

    預設值false

  • java.codeGeneration.toString.template

    作用

    用於生成toString方法的模板

    "java.codeGeneration.toString.template": "${object.className} [${member.name()}=${member.value}, ${otherMembers}]"
    

    預設值${object.className} [${member.name()}=${member.value}, ${otherMembers}]

  • java.codeGeneration.toString.codeStyle

    作用

    生成 toString 方法的程式碼風格

    "java.codeGeneration.toString.codeStyle": "STRING_CONCATENATION"
    

    預設值STRING_CONCATENATION

  • java.codeGeneration.toString.skipNullValues

    作用

    生成toString方法時跳過空值

    "java.codeGeneration.toString.skipNullValues": false
    

    預設值false

  • java.codeGeneration.toString.listArrayContents

    作用

    列出陣列的內容,而不是使用本地toString()

    "java.codeGeneration.toString.listArrayContents": true
    

    預設值true

  • java.codeGeneration.toString.limitElements

    作用

    • 限制要列出的陣列/集合/對映中的專案數
    • 如果為 0 則列出所有專案
    "java.codeGeneration.toString.limitElements": 0
    

    預設值0

  • java.codeGeneration.insertionLocation

    作用

    指定源操作生成的程式碼的插入位置

    • afterCursor: 在游標所在的成員後面插入生成的程式碼
    • beforeCursor: 在游標所在成員之前插入生成的程式碼
    • lastMember: 插入生成的程式碼作為目標型別的最後一個成員
    "java.codeGeneration.insertionLocation": "afterCursor"
    

    預設值afterCursor

  • java.selectionRange.enabled

    作用

    • 啟用/禁用對Java的智慧選擇支援
    • 禁用此選項不會影響VS程式碼內建的基於單詞和基於括號的智慧選擇
    "java.selectionRange.enabled": true
    

    預設值true

  • java.showBuildStatusOnStart.enabled

    作用

    啟動時自動顯示生成狀態

    • notification:通過進度通知顯示構建狀態
    • terminal:通過終端顯示構建狀態
    • off:不顯示任何構建狀態

    為了向後相容,此設定還接受布林值,其中true與notification和false具有相同含義off

    "java.showBuildStatusOnStart.enabled": `notification`
    

    預設值notification

  • java.configuration.runtimes

    作用

    將Java執行環境對映到本地JDK

    "java.configuration.runtimes": 
    

    預設值:``

  • java.server.launchMode

    作用

    Java擴充套件的啟動模式

    • Standard:提供完整的功能,如智慧感知、重構、構建、Maven/Gradle 支援等...
    • LightWeight:以較低的啟動成本啟動語法伺服器。僅提供大綱、導航、javadoc、語法錯誤等語法功能。輕量級模式不會載入第三方擴充套件,如java test runner、java debugger等。
    • Hybrid:提供具有更好響應能力的完整功能。它啟動一個標準語言伺服器和一個輔助語法伺服器。語法伺服器提供語法功能,直到標準伺服器準備好。標準伺服器完全準備好後,語法伺服器將自動關閉
    "java.server.launchMode": "Hybrid"
    

    預設值Hybrid

  • java.sources.organizeImports.starThreshold

    作用

    指定在使用star-import之前新增的匯入數

    "java.sources.organizeImports.starThreshold": 99
    

    預設值99

  • java.sources.organizeImports.staticStarThreshold

    作用

    指定在使用star-import之前新增的靜態匯入數

    "java.sources.organizeImports.staticStarThreshold": 99
    

    預設值99

  • java.imports.gradle.wrapper.checksums

    作用

    定義Gradle包裝的允許/不允許SHA-256校驗和

    "java.imports.gradle.wrapper.checksums": 
    

    預設值:``

  • java.project.importOnFirstTimeStartup

    作用

    指定首次以(Hybrid)混合模式
    支援的值是

    • disabled(從不匯入)
    • interactive(要求匯入或不匯入)
    • automatic(總是匯入)
    "java.project.importOnFirstTimeStartup": "automatic"
    

    預設值automatic

  • java.project.importHint

    作用

    啟動時跳過Java專案匯入時,啟用/禁用伺服器模式切換資訊

    "java.project.importHint": true
    

    預設值true

  • java.project.resourceFilters

    作用

    • 不讓Java語言伺服器重新整理檔案和資料夾,這可以提高整體效能
    • ["node_modules",".git"] 將排除所有名為 node_modules or .git 的檔案和資料夾
    "java.project.resourceFilters": "node_modules,.git"
    

    預設值node_modules,.git

  • java.templates.fileHeader

    作用

    • 指定新Java檔案的檔案頭註釋
    • 支援使用字串陣列配置多行註釋,並使用${variable}引用預定義變數
    "java.templates.fileHeader": 
    

    預設值:``

  • java.templates.typeComment

    作用

    • 指定新Java型別的型別註釋
    • 支援使用字串陣列配置多行註釋,並使用${variable}引用預定義變數
    "java.templates.typeComment": 
    

    預設值:``

  • java.references.includeAccessors

    作用

    在查詢引用時包括getter、setter和builder/constructor

    "java.references.includeAccessors": true
    

    預設值true

  • java.references.includeDecompiledSources

    作用

    在查詢引用時包括反編譯的原始碼

    "java.references.includeDecompiledSources": true
    

    預設值true

  • java.typeHierarchy.lazyLoad

    作用

    • 啟用/禁用延遲載入型別層次結構中的內容
    • 延遲載入可以節省大量載入時間,但每個型別都應該手動擴充套件以載入其內容
    "java.typeHierarchy.lazyLoad": false
    

    預設值false

  • java.settings.url

    作用

    指定工作區Java設定的url或檔案路徑。請參見設定全域性首選項

    "java.settings.url": null
    

    預設值null

  • java.symbols.includeSourceMethodDeclarations

    作用

    在符號搜尋中包含原始檔中的方法宣告

    "java.symbols.includeSourceMethodDeclarations": false
    

    預設值false

  • java.quickfix.showAt

    作用

    在問題或行級別顯示快速修復

    "java.quickfix.showAt": "line"
    

    預設值line

命令

  • java.server.mode.switch

    切換到標準模式

  • java.projectConfiguration.update

    更新專案

  • java.project.import

    將Java專案匯入工作區

  • java.open.serverLog

    開啟Java語言伺服器日誌檔案

  • java.open.clientLog

    開啟Java擴充套件日誌檔案

  • java.open.logs

    開啟所有日誌檔案

  • java.workspace.compile

    強制Java編譯

  • java.open.formatter.settings

    開啟Java格式化程式設定

  • java.clean.workspace

    清理Java語言伺服器工作區

  • java.project.updateSourceAttachment

    Attach Source

  • java.project.addToSourcePath

    將資料夾新增到Java源路徑

  • java.project.removeFromSourcePath

    從Java源路徑中刪除資料夾

  • java.project.listSourcePaths

    列出所有Java源路徑

  • java.show.server.task.status

    顯示建立工作狀態

  • java.action.navigateToSuperImplementation

    轉到實現該方法的類檔案的父檔案

  • java.action.showTypeHierarchy

    顯示型別層次結構

  • java.action.showClassHierarchy

    顯示類層次結構

  • java.action.showSupertypeHierarchy

    顯示超型別層次結構

  • java.action.showSubtypeHierarchy

    顯示子型別層次結構

  • java.action.changeBaseType

    基於this型別

  • java.action.clipboardPasteAction

    匯入所有需要匯入的類

    快捷鍵:Ctrl + Shift + V

設定的使用

如果只是新手使用Language Support for Java(TM) by Red Hat擴充的LightWeight【輕量級模式】就夠了

Language Support for Java(TM) by Red Hat擴充預設是Hybrid【混合模式】

  • 在你的工作目錄(如果不懂先學一下這個概念)

    比如有一個目錄(myProject)【隨便】

    在這個目錄下建一個.vscode目錄

    • .vscode中是專門新增一些配置檔案【會覆蓋你對VScode的一些設定】
    • 檔名必須是 .vscode

    .vscode 目錄新建 settings.json檔案

    配置就在 settings.json檔案其中新增,上面的選項根據自身需求新增即可

  • 1示例(使用擴充的LightWeight模式):

    {
        "java.server.launchMode": "LightWeight"
    }
    
  • 2示例(使用混合模式,開啟資料夾時不想匯入 Java 專案)

    {
        "java.server.launchMode": "LightWeight",
        "java.project.importOnFirstTimeStartup": "disabled"
    }
    
  • 多設定就是示例2,以此類推

    {
        選項: 值,
        選項: 值,
        ...
        選項: 值
    }
    
  • 選項和值在上面都有自身需求新增即可

命令的使用

比較複雜細學官方文件:
https://code.visualstudio.com/api

粗講:

能快捷鍵呼叫的

  • Shift + Alt + U :更新專案
  • Shift + Alt + B :強制Java編譯【不建議使用】
  • Ctrl + Shift + V : 匯入所有需要匯入的類【學習Java新手別用】

自己動手,豐衣足食



相關文章