This commit is contained in:
me
2026-01-29 20:32:59 +08:00
parent de68ced39e
commit d3d99fa223
98 changed files with 17233 additions and 52 deletions

View File

@@ -0,0 +1,5 @@
<application>
<component name="UpdatesConfigurable">
<option name="CHECK_NEEDED" value="false" />
</component>
</application>

Binary file not shown.

View File

@@ -0,0 +1,248 @@
ByteCodeViewer|Other Tools
JBoss|Deployment
JSIntentionPowerPack|JavaScript Frameworks and Tools
JUnit|Test Tools
JavaScriptDebugger|JavaScript Frameworks and Tools
JavaScript|JavaScript Frameworks and Tools
Karma|JavaScript Frameworks and Tools
Lombook Plugin|JVM Frameworks
NodeJS|JavaScript Frameworks and Tools
Refactor-X|HTML and XML
Remote Development Server|null
TestNG-J|Test Tools
Tomcat|Deployment
com.deadlock.scsyntax|JavaScript Frameworks and Tools
com.intellij.LineProfiler|null
com.intellij.analysis.pwa.java|null
com.intellij.analysis.pwa|null
com.intellij.aop|JVM Frameworks
com.intellij.beanValidation|JVM Frameworks
com.intellij.cdi|JVM Frameworks
com.intellij.completion.ml.ranking|Local AI/ML Tools
com.intellij.configurationScript|null
com.intellij.copyright|Other Tools
com.intellij.css|Style Sheets
com.intellij.database|Database
com.intellij.dev|null
com.intellij.diagram|Other Tools
com.intellij.dsm|Other Tools
com.intellij.freemarker|Template Languages
com.intellij.grpc|Microservices
com.intellij.hibernate|JVM Frameworks
com.intellij.java-i18n|Other Tools
com.intellij.java.ide|null
com.intellij.javaee.app.servers.integration|Deployment
com.intellij.javaee.el|JVM Frameworks
com.intellij.javaee.extensions|JVM Frameworks
com.intellij.javaee.jpa|JVM Frameworks
com.intellij.javaee.web|JVM Frameworks
com.intellij.javaee|JVM Frameworks
com.intellij.java|null
com.intellij.jsonpath|JavaScript Frameworks and Tools
com.intellij.jsp|Template Languages
com.intellij.llmInstaller|Other Tools
com.intellij.micronaut|JVM Frameworks
com.intellij.microservices.jvm|JVM Frameworks
com.intellij.microservices.ui|Microservices
com.intellij.openRewrite|JVM Frameworks
com.intellij.persistence|JVM Frameworks
com.intellij.platform.ide.provisioner|null
com.intellij.platform.images|null
com.intellij.plugins.webcomponents|JavaScript Frameworks and Tools
com.intellij.properties|Languages
com.intellij.quarkus|JVM Frameworks
com.intellij.reactivestreams|JVM Frameworks
com.intellij.react|JavaScript Frameworks and Tools
com.intellij.searcheverywhere.ml|Local AI/ML Tools
com.intellij.spring.boot.initializr|JVM Frameworks
com.intellij.spring.boot|JVM Frameworks
com.intellij.spring.cloud|JVM Frameworks
com.intellij.spring.data|JVM Frameworks
com.intellij.spring.integration|JVM Frameworks
com.intellij.spring.messaging|JVM Frameworks
com.intellij.spring.mvc|JVM Frameworks
com.intellij.spring.security|JVM Frameworks
com.intellij.spring|JVM Frameworks
com.intellij.stylelint|JavaScript Frameworks and Tools
com.intellij.swagger|Microservices
com.intellij.tailwindcss|Style Sheets
com.intellij.tasks.timeTracking|Other Tools
com.intellij.tasks|Other Tools
com.intellij.thymeleaf|Template Languages
com.intellij.tracing.ide|null
com.intellij.turboComplete|Local AI/ML Tools
com.intellij.velocity|Template Languages
com.intellij|null
com.jetbrains.performancePlugin.async|Other Tools
com.jetbrains.performancePlugin.dynamicPlugins|null
com.jetbrains.performancePlugin|Other Tools
com.jetbrains.plugins.webDeployment|Deployment
com.jetbrains.restClient|Microservices
com.jetbrains.restWebServices|JVM Frameworks
com.jetbrains.sh|Languages
com.jetbrains.warmup.performanceTesting|null
idea.plugin.protoeditor|Microservices
intellij.caches.shared|null
intellij.charts|null
intellij.grid.core.impl|null
intellij.grid.impl|null
intellij.indexing.shared.core|null
intellij.indexing.shared|null
intellij.nextjs|JavaScript Frameworks and Tools
intellij.platform.ijent.impl|Deployment
intellij.prettierJS|JavaScript Frameworks and Tools
intellij.vitejs|JavaScript Frameworks and Tools
intellij.webpack|JavaScript Frameworks and Tools
intellij.webp|null
org.editorconfig.editorconfigjetbrains|Other Tools
org.intellij.groovy|Languages
org.intellij.intelliLang|Other Tools
org.intellij.plugins.markdown|Languages
org.intellij.plugins.postcss|Style Sheets
org.jetbrains.completion.full.line|Local AI/ML Tools
org.jetbrains.debugger.streams|Other Tools
org.jetbrains.idea.eclipse|Other Tools
org.jetbrains.idea.maven.ext|Build Tools
org.jetbrains.idea.maven.model|null
org.jetbrains.idea.maven.server.api|null
org.jetbrains.idea.maven|Build Tools
org.jetbrains.idea.reposearch|null
org.jetbrains.java.decompiler|Other Tools
org.jetbrains.kotlin|Languages
org.jetbrains.plugins.less|Style Sheets
org.jetbrains.plugins.node-remote-interpreter|JavaScript Frameworks and Tools
org.jetbrains.plugins.remote-run|null
org.jetbrains.plugins.sass|Style Sheets
org.jetbrains.plugins.terminal|Other Tools
org.jetbrains.plugins.textmate|Other Tools
org.jetbrains.plugins.vue|JavaScript Frameworks and Tools
org.jetbrains.plugins.wsl.remoteSdk|null
org.jetbrains.plugins.yaml|Languages
org.jetbrains.security.package-checker|null
org.toml.lang|Languages
tanvd.grazi|null
tslint|JavaScript Frameworks and Tools

View File

@@ -0,0 +1 @@
<code_scheme name="Default" version="173" />

View File

@@ -0,0 +1,33 @@
AngularJS
AntSupport
Coverage
Docker
Git4Idea
HtmlTools
PerforceDirectPlugin
Subversion
XPathView
com.android.tools.design
com.intellij.flyway
com.intellij.gradle
com.intellij.javaee.reverseEngineering
com.intellij.kubernetes
com.intellij.liquibase
com.intellij.plugins.eclipsekeymap
com.intellij.plugins.netbeanskeymap
com.intellij.plugins.visualstudiokeymap
com.intellij.settingsSync
com.intellij.uiDesigner
com.jetbrains.codeWithMe
com.jetbrains.gateway
com.jetbrains.space
hg4idea
intellij.ktor
org.intellij.qodana
org.jetbrains.android
org.jetbrains.idea.gradle.ext
org.jetbrains.plugins.docker.gateway
org.jetbrains.plugins.github
org.jetbrains.plugins.gitlab
org.jetbrains.plugins.javaFX
training

View File

@@ -0,0 +1,4 @@
ide.experimental.ui
true
idea.plugins.compatible.build

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,348 @@
{
"groups" : [ {
"id" : "mlse.event.log",
"builds" : [ ],
"versions" : [ {
"from" : "1"
} ],
"rules" : {
"event_id" : [ "{enum#__event_id}" ],
"event_data" : {
"code" : [ "{regexp#integer}" ],
"error" : [ "{util#class_name}", "{enum:EMPTY_CONTENT|INVALID_JSON|UNKNOWN}", "{enum:EMPTY_SERVICE_URL|UNREACHABLE_SERVICE|EMPTY_RESPONSE_BODY|ERROR_ON_LOAD}" ],
"error_ts" : [ "{regexp#integer}" ],
"errors" : [ "{regexp#integer}" ],
"external" : [ "{enum#boolean}" ],
"failed" : [ "{regexp#integer}" ],
"paths" : [ "{regexp#hash}" ],
"send" : [ "{regexp#integer}" ],
"stage" : [ "{enum:LOADING|PARSING}" ],
"succeed" : [ "{regexp#integer}" ],
"total" : [ "{regexp#integer}" ],
"version" : [ "{regexp#version}" ]
},
"enums" : {
"__event_id" : [ "logs.send", "loading.config.failed", "metadata.loaded", "metadata.updated", "metadata.update.failed", "metadata.load.failed" ]
}
},
"anonymized_fields" : [ {
"event" : "logs.send",
"fields" : [ "paths" ]
} ]
}, {
"id" : "mlse.log",
"builds" : [ ],
"versions" : [ {
"from" : "2"
} ],
"rules" : {
"event_id" : [ "{enum:sessionFinished|searchRestarted|key.not.computed}" ],
"event_data" : {
"closePopup" : [ "{enum#boolean}" ],
"collectedItems.absentFeatures" : [ "{util#mlse_element_feature}" ],
"collectedItems.actionId" : [ "{util#action}", "{enum#action}" ],
"collectedItems.contributor.contributorId" : [ "{enum:SearchEverywhereContributor.All|ClassSearchEverywhereContributor|FileSearchEverywhereContributor|RecentFilesSEContributor|SymbolSearchEverywhereContributor|ActionSearchEverywhereContributor|RunConfigurationsSEContributor|CommandsContributor|TopHitSEContributor|com.intellij.ide.actions.searcheverywhere.CalculatorSEContributor|TmsSearchEverywhereContributor|YAMLKeysSearchEverywhereContributor|UrlSearchEverywhereContributor|Vcs.Git|AutocompletionContributor|TextSearchContributor|DbSETablesContributor|third.party}", "{enum:SearchEverywhereSpellingCorrectorContributor}", "{enum:SemanticActionSearchEverywhereContributor}" ],
"collectedItems.contributor.contributorIsMostPopular" : [ "{enum#boolean}" ],
"collectedItems.contributor.contributorPopularityIndex" : [ "{regexp#integer}" ],
"collectedItems.contributor.contributorPriority" : [ "{regexp#integer}" ],
"collectedItems.contributor.contributorWeight" : [ "{regexp#integer}" ],
"collectedItems.contributorId" : [ "{enum#se_tab}" ],
"collectedItems.features.actionSimilarityScore" : [ "{regexp#float}" ],
"collectedItems.features.allInitialLettersMatch" : [ "{enum#boolean}" ],
"collectedItems.features.asActionPureSemantic" : [ "{enum#boolean}" ],
"collectedItems.features.authoritiesSize" : [ "{regexp#integer}" ],
"collectedItems.features.directoryDepth" : [ "{regexp#integer}" ],
"collectedItems.features.fileGroup" : [ "{enum:MAIN|BUILD|CHANGELOG|CONFIG|README}" ],
"collectedItems.features.fileStatus" : [ "{enum#vcs_file_status}" ],
"collectedItems.features.fileType" : [ "{util#file_type}" ],
"collectedItems.features.fileTypeMatchesQuery" : [ "{enum#boolean}" ],
"collectedItems.features.fileTypeUsageRatio" : [ "{regexp#float}" ],
"collectedItems.features.fileTypeUsageRatioToMax" : [ "{regexp#float}" ],
"collectedItems.features.fileTypeUsageRatioToMin" : [ "{regexp#float}" ],
"collectedItems.features.fileTypeUsedInLastDay" : [ "{enum#boolean}" ],
"collectedItems.features.fileTypeUsedInLastHour" : [ "{enum#boolean}" ],
"collectedItems.features.fileTypeUsedInLastMinute" : [ "{enum#boolean}" ],
"collectedItems.features.fileTypeUsedInLastMonth" : [ "{enum#boolean}" ],
"collectedItems.features.fromConfigurable" : [ "{enum#boolean}" ],
"collectedItems.features.globalUsage" : [ "{regexp#integer}" ],
"collectedItems.features.globalUsageToMax" : [ "{regexp#float}" ],
"collectedItems.features.globalUsageToMaxV1" : [ "{regexp#float}" ],
"collectedItems.features.globalUsageToMaxV2" : [ "{regexp#float}" ],
"collectedItems.features.globalUsageToMaxV3" : [ "{regexp#float}" ],
"collectedItems.features.globalUsageToMaxV4" : [ "{regexp#float}" ],
"collectedItems.features.globalUsageV1" : [ "{regexp#integer}" ],
"collectedItems.features.globalUsageV2" : [ "{regexp#integer}" ],
"collectedItems.features.globalUsageV3" : [ "{regexp#integer}" ],
"collectedItems.features.globalUsageV4" : [ "{regexp#integer}" ],
"collectedItems.features.groupLength" : [ "{regexp#integer}" ],
"collectedItems.features.heuristicPriority" : [ "{regexp#integer}" ],
"collectedItems.features.isAbbreviation" : [ "{enum#boolean}" ],
"collectedItems.features.isAccessibleFromModule" : [ "{enum#boolean}" ],
"collectedItems.features.isAction" : [ "{enum#boolean}" ],
"collectedItems.features.isActionPureSemantic" : [ "{enum#boolean}" ],
"collectedItems.features.isBookmark" : [ "{enum#boolean}" ],
"collectedItems.features.isBooleanOption" : [ "{enum#boolean}" ],
"collectedItems.features.isChanged" : [ "{enum#boolean}" ],
"collectedItems.features.isDeprecated" : [ "{enum#boolean}" ],
"collectedItems.features.isDirectory" : [ "{enum#boolean}" ],
"collectedItems.features.isEditorAction" : [ "{enum#boolean}" ],
"collectedItems.features.isEnabled" : [ "{enum#boolean}" ],
"collectedItems.features.isExactMatch" : [ "{enum#boolean}" ],
"collectedItems.features.isExactRelativePath" : [ "{enum#boolean}" ],
"collectedItems.features.isFavorite" : [ "{enum#boolean}" ],
"collectedItems.features.isFromLibrary" : [ "{enum#boolean}" ],
"collectedItems.features.isGroup" : [ "{enum#boolean}" ],
"collectedItems.features.isHighPriority" : [ "{enum#boolean}" ],
"collectedItems.features.isIgnored" : [ "{enum#boolean}" ],
"collectedItems.features.isInComment" : [ "{enum#boolean}" ],
"collectedItems.features.isInExcluded" : [ "{enum#boolean}" ],
"collectedItems.features.isInSource" : [ "{enum#boolean}" ],
"collectedItems.features.isInTestSources" : [ "{enum#boolean}" ],
"collectedItems.features.isInvalid" : [ "{enum#boolean}" ],
"collectedItems.features.isNotDefault" : [ "{enum#boolean}" ],
"collectedItems.features.isOpened" : [ "{enum#boolean}" ],
"collectedItems.features.isOption" : [ "{enum#boolean}" ],
"collectedItems.features.isPureSemantic" : [ "{enum#boolean}" ],
"collectedItems.features.isRegistryOption" : [ "{enum#boolean}" ],
"collectedItems.features.isSameFileTypeAsOpenedFile" : [ "{enum#boolean}" ],
"collectedItems.features.isSameModule" : [ "{enum#boolean}" ],
"collectedItems.features.isSearchAction" : [ "{enum#boolean}" ],
"collectedItems.features.isSemanticOnly" : [ "{enum#boolean}" ],
"collectedItems.features.isShared" : [ "{enum#boolean}" ],
"collectedItems.features.isTemporary" : [ "{enum#boolean}" ],
"collectedItems.features.isToggleAction" : [ "{enum#boolean}" ],
"collectedItems.features.isTopLevel" : [ "{enum#boolean}" ],
"collectedItems.features.javaIsAbstract" : [ "{enum#boolean}" ],
"collectedItems.features.javaIsInner" : [ "{enum#boolean}" ],
"collectedItems.features.javaIsInstantiatable" : [ "{enum#boolean}" ],
"collectedItems.features.javaIsInterface" : [ "{enum#boolean}" ],
"collectedItems.features.javaIsLocalOrAnonymous" : [ "{enum#boolean}" ],
"collectedItems.features.javaIsPrivate" : [ "{enum#boolean}" ],
"collectedItems.features.javaIsProtected" : [ "{enum#boolean}" ],
"collectedItems.features.javaIsPublic" : [ "{enum#boolean}" ],
"collectedItems.features.javaIsStatic" : [ "{enum#boolean}" ],
"collectedItems.features.javaNumberOfAllFields" : [ "{regexp#integer}" ],
"collectedItems.features.javaNumberOfAllMethods" : [ "{regexp#integer}" ],
"collectedItems.features.javaNumberOfAnnotations" : [ "{regexp#integer}" ],
"collectedItems.features.javaNumberOfDeprecatedFields" : [ "{regexp#integer}" ],
"collectedItems.features.javaNumberOfDeprecatedMethods" : [ "{regexp#integer}" ],
"collectedItems.features.javaNumberOfFields" : [ "{regexp#integer}" ],
"collectedItems.features.javaNumberOfMethods" : [ "{regexp#integer}" ],
"collectedItems.features.javaNumberOfSupers" : [ "{regexp#integer}" ],
"collectedItems.features.keyIsInTop5RecentlyUsed" : [ "{enum#boolean}" ],
"collectedItems.features.keyIsMostPopular" : [ "{enum#boolean}" ],
"collectedItems.features.keyIsMostRecentlyUsed" : [ "{enum#boolean}" ],
"collectedItems.features.keyNeverUsed" : [ "{enum#boolean}" ],
"collectedItems.features.kotlinIsAbstract" : [ "{enum#boolean}" ],
"collectedItems.features.kotlinIsData" : [ "{enum#boolean}" ],
"collectedItems.features.kotlinIsDocumented" : [ "{enum#boolean}" ],
"collectedItems.features.kotlinIsEnum" : [ "{enum#boolean}" ],
"collectedItems.features.kotlinIsInline" : [ "{enum#boolean}" ],
"collectedItems.features.kotlinIsInner" : [ "{enum#boolean}" ],
"collectedItems.features.kotlinIsInterface" : [ "{enum#boolean}" ],
"collectedItems.features.kotlinIsInternal" : [ "{enum#boolean}" ],
"collectedItems.features.kotlinIsLocalOrAnon" : [ "{enum#boolean}" ],
"collectedItems.features.kotlinIsObject" : [ "{enum#boolean}" ],
"collectedItems.features.kotlinIsOpen" : [ "{enum#boolean}" ],
"collectedItems.features.kotlinIsPrivate" : [ "{enum#boolean}" ],
"collectedItems.features.kotlinIsProtected" : [ "{enum#boolean}" ],
"collectedItems.features.kotlinIsPublic" : [ "{enum#boolean}" ],
"collectedItems.features.kotlinIsSAM" : [ "{enum#boolean}" ],
"collectedItems.features.kotlinIsSealed" : [ "{enum#boolean}" ],
"collectedItems.features.kotlinIsValue" : [ "{enum#boolean}" ],
"collectedItems.features.kotlinNumberOfDeclarations" : [ "{regexp#integer}" ],
"collectedItems.features.kotlinNumberOfDocs" : [ "{regexp#integer}" ],
"collectedItems.features.kotlinNumberOfMethods" : [ "{regexp#integer}" ],
"collectedItems.features.kotlinNumberOfOverridden" : [ "{regexp#integer}" ],
"collectedItems.features.kotlinNumberOfProperties" : [ "{regexp#integer}" ],
"collectedItems.features.kotlinNumberOfReceivers" : [ "{regexp#integer}" ],
"collectedItems.features.kotlinNumberOfSupers" : [ "{regexp#integer}" ],
"collectedItems.features.langIsInTop3MostUsed" : [ "{enum#boolean}" ],
"collectedItems.features.langIsMostUsed" : [ "{enum#boolean}" ],
"collectedItems.features.langNeverUsed" : [ "{enum#boolean}" ],
"collectedItems.features.langSameAsOpenedFile" : [ "{enum#boolean}" ],
"collectedItems.features.langUseCount" : [ "{regexp#integer}" ],
"collectedItems.features.langUsedInLastDay" : [ "{enum#boolean}" ],
"collectedItems.features.langUsedInLastMonth" : [ "{enum#boolean}" ],
"collectedItems.features.langUsedInLastWeek" : [ "{enum#boolean}" ],
"collectedItems.features.language" : [ "{util#lang}" ],
"collectedItems.features.matchMode" : [ "{enum:NONE|INTENTION|NAME|DESCRIPTION|GROUP|NON_MENU|SYNONYM}" ],
"collectedItems.features.mlScore" : [ "{regexp#float}" ],
"collectedItems.features.nameLength" : [ "{regexp#integer}" ],
"collectedItems.features.packageDistance" : [ "{regexp#integer}" ],
"collectedItems.features.packageDistanceNorm" : [ "{regexp#float}" ],
"collectedItems.features.parentStatIsMostPopular" : [ "{enum#boolean}" ],
"collectedItems.features.parentStatIsMostRecent" : [ "{enum#boolean}" ],
"collectedItems.features.parentStatRecency" : [ "{regexp#integer}" ],
"collectedItems.features.parentStatUseCount" : [ "{regexp#integer}" ],
"collectedItems.features.pluginId" : [ "{util#plugin}" ],
"collectedItems.features.pluginType" : [ "{enum#plugin_type}" ],
"collectedItems.features.predictionScore" : [ "{regexp#float}" ],
"collectedItems.features.prefixExact" : [ "{enum#boolean}" ],
"collectedItems.features.prefixGreedyScore" : [ "{regexp#float}" ],
"collectedItems.features.prefixGreedyWithCaseScore" : [ "{regexp#float}" ],
"collectedItems.features.prefixMatchedLastWord" : [ "{enum#boolean}" ],
"collectedItems.features.prefixMatchedWordsRelative" : [ "{regexp#float}" ],
"collectedItems.features.prefixMatchedWordsScore" : [ "{regexp#float}" ],
"collectedItems.features.prefixMatchedWordsWithCaseRelative" : [ "{regexp#float}" ],
"collectedItems.features.prefixMatchedWordsWithCaseScore" : [ "{regexp#float}" ],
"collectedItems.features.prefixMatchingType" : [ "{enum#query_matching_type}" ],
"collectedItems.features.prefixSameStartCount" : [ "{regexp#integer}" ],
"collectedItems.features.prefixSkippedWords" : [ "{regexp#integer}" ],
"collectedItems.features.priority" : [ "{regexp#integer}" ],
"collectedItems.features.recentFilesIndex" : [ "{regexp#integer}" ],
"collectedItems.features.relPathPrefixGreedyScore" : [ "{regexp#float}" ],
"collectedItems.features.relPathPrefixMatchedWordsRelative" : [ "{regexp#float}" ],
"collectedItems.features.relPathPrefixMatchedWordsScore" : [ "{regexp#float}" ],
"collectedItems.features.relPathPrefixSameStartCount" : [ "{regexp#integer}" ],
"collectedItems.features.runConfigType" : [ "{util#run_config_type}" ],
"collectedItems.features.schemes" : [ "{enum:http|https|ws|wss}" ],
"collectedItems.features.segmentsTotal" : [ "{regexp#integer}" ],
"collectedItems.features.similarityScore" : [ "{regexp#float}" ],
"collectedItems.features.statIsMostPopular" : [ "{enum#boolean}" ],
"collectedItems.features.statIsMostRecent" : [ "{enum#boolean}" ],
"collectedItems.features.statRecency" : [ "{regexp#integer}" ],
"collectedItems.features.statUseCount" : [ "{regexp#integer}" ],
"collectedItems.features.suggestionConfidence" : [ "{regexp#float}" ],
"collectedItems.features.textLength" : [ "{regexp#integer}" ],
"collectedItems.features.timeSinceLastFileTypeUsage" : [ "{regexp#integer}" ],
"collectedItems.features.timeSinceLastModification" : [ "{regexp#integer}" ],
"collectedItems.features.timeSinceLastUsage" : [ "{regexp#integer}" ],
"collectedItems.features.timeSinceLastUsageSe" : [ "{regexp#integer}" ],
"collectedItems.features.totalSymbolsAmount" : [ "{regexp#integer}" ],
"collectedItems.features.type" : [ "{enum:ABBREVIATION|INTENTION|TOP_HIT|OPTION|ACTION}", "{enum:SEMANTIC}" ],
"collectedItems.features.typeWeight" : [ "{regexp#integer}" ],
"collectedItems.features.usage" : [ "{regexp#integer}" ],
"collectedItems.features.usageSe" : [ "{regexp#integer}" ],
"collectedItems.features.usageToMax" : [ "{regexp#float}" ],
"collectedItems.features.usageToMaxSe" : [ "{regexp#float}" ],
"collectedItems.features.usagesPerUserRatio" : [ "{regexp#float}" ],
"collectedItems.features.usagesPerUserRatioV1" : [ "{regexp#float}" ],
"collectedItems.features.usagesPerUserRatioV2" : [ "{regexp#float}" ],
"collectedItems.features.usagesPerUserRatioV3" : [ "{regexp#float}" ],
"collectedItems.features.usagesPerUserRatioV4" : [ "{regexp#float}" ],
"collectedItems.features.usersRatio" : [ "{regexp#float}" ],
"collectedItems.features.usersRatioV1" : [ "{regexp#float}" ],
"collectedItems.features.usersRatioV2" : [ "{regexp#float}" ],
"collectedItems.features.usersRatioV3" : [ "{regexp#float}" ],
"collectedItems.features.usersRatioV4" : [ "{regexp#float}" ],
"collectedItems.features.variablesTotal" : [ "{regexp#integer}" ],
"collectedItems.features.wasModifiedInLastDay" : [ "{enum#boolean}" ],
"collectedItems.features.wasModifiedInLastHour" : [ "{enum#boolean}" ],
"collectedItems.features.wasModifiedInLastMinute" : [ "{enum#boolean}" ],
"collectedItems.features.wasModifiedInLastMonth" : [ "{enum#boolean}" ],
"collectedItems.features.wasUsedInLastDay" : [ "{enum#boolean}" ],
"collectedItems.features.wasUsedInLastDaySe" : [ "{enum#boolean}" ],
"collectedItems.features.wasUsedInLastHour" : [ "{enum#boolean}" ],
"collectedItems.features.wasUsedInLastHourSe" : [ "{enum#boolean}" ],
"collectedItems.features.wasUsedInLastMinute" : [ "{enum#boolean}" ],
"collectedItems.features.wasUsedInLastMinuteSe" : [ "{enum#boolean}" ],
"collectedItems.features.wasUsedInLastMonth" : [ "{enum#boolean}" ],
"collectedItems.features.wasUsedInLastMonthSe" : [ "{enum#boolean}" ],
"collectedItems.features.weight" : [ "{regexp#float}" ],
"collectedItems.features.withIcon" : [ "{enum#boolean}" ],
"collectedItems.features.yamlFileModifiedInLastDay" : [ "{enum#boolean}" ],
"collectedItems.features.yamlFileModifiedInLastHour" : [ "{enum#boolean}" ],
"collectedItems.features.yamlFileModifiedInLastMonth" : [ "{enum#boolean}" ],
"collectedItems.features.yamlFileModifiedInLastWeek" : [ "{enum#boolean}" ],
"collectedItems.features.yamlFileRecencyIndex" : [ "{regexp#integer}" ],
"collectedItems.features.yamlKeyIsInTop5RecentlyUsed" : [ "{enum#boolean}" ],
"collectedItems.features.yamlKeyIsMostPopular" : [ "{enum#boolean}" ],
"collectedItems.features.yamlKeyIsMostRecentlyUsed" : [ "{enum#boolean}" ],
"collectedItems.features.yamlKeyNeverUsed" : [ "{enum#boolean}" ],
"collectedItems.features.yamlTimeSinceLastModification" : [ "{regexp#integer}" ],
"collectedItems.id" : [ "{regexp#integer}" ],
"collectedItems.mlWeight" : [ "{regexp#float}" ],
"collectedItems.priority" : [ "{regexp#integer}" ],
"contributors.id" : [ "{enum:SearchEverywhereContributor.All|ClassSearchEverywhereContributor|FileSearchEverywhereContributor|RecentFilesSEContributor|SymbolSearchEverywhereContributor|ActionSearchEverywhereContributor|RunConfigurationsSEContributor|CommandsContributor|TopHitSEContributor|com.intellij.ide.actions.searcheverywhere.CalculatorSEContributor|TmsSearchEverywhereContributor|YAMLKeysSearchEverywhereContributor|UrlSearchEverywhereContributor|Vcs.Git|AutocompletionContributor|TextSearchContributor|DbSETablesContributor|third.party}" ],
"contributors.isMostPopular" : [ "{enum#boolean}" ],
"contributors.popularityIndex" : [ "{regexp#integer}" ],
"contributors.priority" : [ "{regexp#integer}" ],
"contributors.weight" : [ "{regexp#integer}" ],
"experimentGroup" : [ "{regexp#integer}" ],
"experimentVersion" : [ "{regexp#integer}" ],
"globalMaxUsage" : [ "{regexp#integer}" ],
"globalMaxUsageV1" : [ "{regexp#integer}" ],
"globalMaxUsageV2" : [ "{regexp#integer}" ],
"globalMaxUsageV3" : [ "{regexp#integer}" ],
"globalMaxUsageV4" : [ "{regexp#integer}" ],
"globalMinUsage" : [ "{regexp#integer}" ],
"globalMinUsageV1" : [ "{regexp#integer}" ],
"globalMinUsageV2" : [ "{regexp#integer}" ],
"globalMinUsageV3" : [ "{regexp#integer}" ],
"globalMinUsageV4" : [ "{regexp#integer}" ],
"isConsistent" : [ "{enum#boolean}" ],
"isForceExperiment" : [ "{enum#boolean}" ],
"isInternal" : [ "{enum#boolean}" ],
"isMixedList" : [ "{enum#boolean}" ],
"isSingleModuleProject" : [ "{enum#boolean}" ],
"lastOpenToolWindow" : [ "{util#toolwindow}" ],
"logFeatures" : [ "{enum#boolean}" ],
"maxUsage" : [ "{regexp#integer}" ],
"maxUsageSE" : [ "{regexp#integer}" ],
"minUsage" : [ "{regexp#integer}" ],
"minUsageSE" : [ "{regexp#integer}" ],
"numberOfOpenEditors" : [ "{regexp#integer}" ],
"openFileTypes" : [ "{util#file_type}" ],
"orderByMl" : [ "{enum#boolean}" ],
"plugin" : [ "{util#plugin}" ],
"plugin_type" : [ "{util#plugin_type}" ],
"plugin_version" : [ "{util#plugin_version}" ],
"projectDisposed" : [ "{enum#boolean}" ],
"projectOpened" : [ "{enum#boolean}" ],
"rebuildReason" : [ "{enum#restart_reasons}" ],
"seTabId" : [ "{enum#se_tab}", "{enum:SearchEverywhereSpellingCorrectorContributor}", "{enum:Git}" ],
"searchIndex" : [ "{regexp#integer}" ],
"searchStateFeatures.isCaseSensitive" : [ "{enum#boolean}" ],
"searchStateFeatures.isDumbMode" : [ "{enum#boolean}" ],
"searchStateFeatures.isEmptyQuery" : [ "{enum#boolean}" ],
"searchStateFeatures.isRegularExpressions" : [ "{enum#boolean}" ],
"searchStateFeatures.isSearchEverywhere" : [ "{enum#boolean}" ],
"searchStateFeatures.isWholeWordsOnly" : [ "{enum#boolean}" ],
"searchStateFeatures.queryContainsAbbreviations" : [ "{enum#boolean}" ],
"searchStateFeatures.queryContainsCommandChar" : [ "{enum#boolean}" ],
"searchStateFeatures.queryContainsPath" : [ "{enum#boolean}" ],
"searchStateFeatures.queryContainsSpaces" : [ "{enum#boolean}" ],
"searchStateFeatures.queryIsAllUppercase" : [ "{enum#boolean}" ],
"searchStateFeatures.queryIsCamelCase" : [ "{enum#boolean}" ],
"searchStateFeatures.queryLength" : [ "{regexp#integer}" ],
"searchStateFeatures.searchScope" : [ "{util#scopeRule}" ],
"selectedIds" : [ "{regexp#integer}" ],
"selectedIndexes" : [ "{regexp#integer}" ],
"semanticExperimentGroup" : [ "{regexp#integer}" ],
"semanticSearchEnabled" : [ "{enum#boolean}" ],
"sessionId" : [ "{regexp#integer}" ],
"startTime" : [ "{regexp#integer}" ],
"timeToFirstResult" : [ "{regexp#integer}" ],
"totalItems" : [ "{regexp#integer}" ],
"typedBackspaces" : [ "{regexp#integer}" ],
"typedSymbolKeys" : [ "{regexp#integer}" ],
"unsupported_classes" : [ "{util#class_name}" ]
},
"enums" : {
"query_matching_type" : [ "START_WITH", "WORDS_FIRST_CHAR", "GREEDY_WITH_CASE", "GREEDY", "UNKNOWN" ],
"restart_reasons" : [ "SEARCH_STARTED", "TEXT_CHANGED", "TAB_CHANGED", "SCOPE_CHANGED", "EXIT_DUMB_MODE", "TEXT_SEARCH_OPTION_CHANGED" ],
"se_tab" : [ "SearchEverywhereContributor.All", "ClassSearchEverywhereContributor", "FileSearchEverywhereContributor", "RecentFilesSEContributor", "SymbolSearchEverywhereContributor", "ActionSearchEverywhereContributor", "RunConfigurationsSEContributor", "CommandsContributor", "TopHitSEContributor", "com.intellij.ide.actions.searcheverywhere.CalculatorSEContributor", "TmsSearchEverywhereContributor", "YAMLKeysSearchEverywhereContributor", "UrlSearchEverywhereContributor", "Vcs.Git", "AutocompletionContributor", "TextSearchContributor", "DbSETablesContributor", "third.party" ],
"vcs_file_status" : [ "NOT_CHANGED", "NOT_CHANGED_IMMEDIATE", "NOT_CHANGED_RECURSIVE", "DELETED", "MODIFIED", "ADDED", "MERGED", "UNKNOWN", "IDEA_FILESTATUS_IGNORED", "HIJACKED", "IDEA_FILESTATUS_MERGED_WITH_CONFLICTS", "IDEA_FILESTATUS_MERGED_WITH_BOTH_CONFLICTS", "IDEA_FILESTATUS_MERGED_WITH_PROPERTY_CONFLICTS", "IDEA_FILESTATUS_DELETED_FROM_FILE_SYSTEM", "SWITCHED", "OBSOLETE", "SUPPRESSED" ]
}
}
} ],
"rules" : {
"enums" : {
"action" : [ "git4idea.rebase.retry", "git4idea.rebase.continue", "git4idea.rebase.abort", "git4idea.rebase.resolve" ],
"boolean" : [ "true", "false", "TRUE", "FALSE", "True", "False" ],
"plugin_type" : [ "JVM_CORE", "PLATFORM", "JB_BUNDLED", "JB_NOT_BUNDLED", "LISTED", "NOT_LISTED", "JB_UPDATED_BUNDLED", "UNKNOWN", "FROM_SOURCES" ]
},
"regexps" : {
"count" : "\\d+K?M?\\+?",
"date_YYYY-MM-DD_HH" : "^[12][0-9]{3}-(0[0-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])( ([0-1][0-9]|2[0-3]))?$",
"date_short_hash" : "[0-9]{2}[01][0-9][0123][0-9]-(([0-9A-Fa-f]{12})|undefined)",
"float" : "-?\\d+(\\.\\d+(E\\-?\\d+)?)?",
"hash" : "([0-9A-Fa-f]{40,64})|undefined",
"integer" : "-?\\d+(\\+)?",
"short_hash" : "([0-9A-Fa-f]{12})|undefined",
"version" : "Unknown|unknown.format|unknown|UNKNOWN|((\\d+\\.?)*\\d+)"
}
},
"version" : "4244"
}

View File

@@ -0,0 +1,84 @@
{
"groups" : [ {
"id" : "mp.plugin.manager",
"builds" : [ ],
"versions" : [ {
"from" : "8"
} ],
"rules" : {
"event_id" : [ "{enum#__event_id}" ],
"event_data" : {
"acceptance_result" : [ "{enum:ACCEPTED|DECLINED|AUTO_ACCEPTED}" ],
"enabled_state" : [ "{enum:ENABLED|DISABLED}" ],
"group" : [ "{enum:BUNDLED_UPDATE|UPDATE|INSTALLING|INSTALLED|SEARCH_INSTALLED|SEARCH|STAFF_PICKS|NEW_AND_UPDATED|TOP_DOWNLOADS|TOP_RATED|CUSTOM_REPOSITORY|INTERNAL|SUGGESTED}" ],
"index" : [ "{regexp#integer}" ],
"localSearchFeatures.isBundled" : [ "{enum#boolean}" ],
"localSearchFeatures.isDisabled" : [ "{enum#boolean}" ],
"localSearchFeatures.isDownloaded" : [ "{enum#boolean}" ],
"localSearchFeatures.isEnabled" : [ "{enum#boolean}" ],
"localSearchFeatures.isInvalid" : [ "{enum#boolean}" ],
"localSearchFeatures.isUpdateNeeded" : [ "{enum#boolean}" ],
"localSearchFeatures.tagFiltersCount" : [ "{regexp#integer}" ],
"localSearchFeatures.vendorFiltersCount" : [ "{regexp#integer}" ],
"localSearchFeatures.withAttributes" : [ "{enum#boolean}" ],
"marketplaceSearchFeatures.customRepositoryCount" : [ "{regexp#integer}" ],
"marketplaceSearchFeatures.isStaffPicks" : [ "{enum#boolean}" ],
"marketplaceSearchFeatures.isSuggested" : [ "{enum#boolean}" ],
"marketplaceSearchFeatures.marketplaceCustomRepositoryCount" : [ "{regexp#integer}" ],
"marketplaceSearchFeatures.sortBy" : [ "{enum:UPDATE_DATE|DOWNLOADS|RATING|NAME|RELEVANCE}" ],
"marketplaceSearchFeatures.tagsListFilter" : [ "{util#mp_tags_list}" ],
"marketplaceSearchFeatures.vendorsListFilter" : [ "{util#mp_vendors_list}" ],
"plugin" : [ "{util#plugin}" ],
"plugin_type" : [ "{util#plugin_type}" ],
"plugin_version" : [ "{util#plugin_version}" ],
"previous_version" : [ "{util#plugin_version}" ],
"resultsFeatures.isEmpty" : [ "{enum#boolean}" ],
"resultsFeatures.reportLimit" : [ "{regexp#integer}" ],
"resultsFeatures.results.byJetBrains" : [ "{enum#boolean}" ],
"resultsFeatures.results.marketplaceInfo.date" : [ "{regexp#integer}" ],
"resultsFeatures.results.marketplaceInfo.downloads" : [ "{regexp#integer}" ],
"resultsFeatures.results.marketplaceInfo.isPaid" : [ "{enum#boolean}" ],
"resultsFeatures.results.marketplaceInfo.marketplaceId" : [ "{regexp#integer}" ],
"resultsFeatures.results.marketplaceInfo.marketplaceRating" : [ "{regexp#float}" ],
"resultsFeatures.results.nameLength" : [ "{regexp#integer}" ],
"resultsFeatures.results.plugin" : [ "{util#plugin}" ],
"resultsFeatures.results.plugin_type" : [ "{util#plugin_type}" ],
"resultsFeatures.results.plugin_version" : [ "{util#plugin_version}" ],
"resultsFeatures.total" : [ "{regexp#integer}" ],
"signature_check_result" : [ "{enum:INVALID_SIGNATURE|MISSING_SIGNATURE|WRONG_SIGNATURE|SUCCESSFUL}" ],
"source" : [ "{enum:MARKETPLACE|CUSTOM_REPOSITORY|FROM_DISK}" ],
"userQueryFeatures.isEmptyQuery" : [ "{enum#boolean}" ],
"userQueryFeatures.queryContainsAbbreviations" : [ "{enum#boolean}" ],
"userQueryFeatures.queryContainsPath" : [ "{enum#boolean}" ],
"userQueryFeatures.queryContainsSpaces" : [ "{enum#boolean}" ],
"userQueryFeatures.queryIsAllLowercase" : [ "{enum#boolean}" ],
"userQueryFeatures.queryIsAllUppercase" : [ "{enum#boolean}" ],
"userQueryFeatures.queryIsCamelCase" : [ "{enum#boolean}" ],
"userQueryFeatures.queryLength" : [ "{regexp#integer}" ],
"userQueryFeatures.withHANSymbols" : [ "{enum#boolean}" ],
"userQueryFeatures.wordCharsAndDelimitersOnly" : [ "{enum#boolean}" ],
"userQueryFeatures.wordsNumber" : [ "{regexp#integer}" ]
},
"enums" : {
"__event_id" : [ "plugin.install.third.party.check", "plugin.search.card.opened", "plugin.signature.warning.shown", "plugin.state.changed", "search.reset", "plugin.installation.finished", "plugin.signature.check.result", "marketplace.tab.search", "plugin.installation.started", "installed.tab.search", "plugin.was.removed" ]
}
}
} ],
"rules" : {
"enums" : {
"boolean" : [ "true", "false", "TRUE", "FALSE", "True", "False" ],
"plugin_type" : [ "JVM_CORE", "PLATFORM", "JB_BUNDLED", "JB_NOT_BUNDLED", "LISTED", "NOT_LISTED", "JB_UPDATED_BUNDLED", "UNKNOWN", "FROM_SOURCES" ]
},
"regexps" : {
"count" : "\\d+K?M?\\+?",
"date_YYYY-MM-DD_HH" : "^[12][0-9]{3}-(0[0-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])( ([0-1][0-9]|2[0-3]))?$",
"date_short_hash" : "[0-9]{2}[01][0-9][0123][0-9]-(([0-9A-Fa-f]{12})|undefined)",
"float" : "-?\\d+(\\.\\d+(E\\-?\\d+)?)?",
"hash" : "([0-9A-Fa-f]{40,64})|undefined",
"integer" : "-?\\d+(\\+)?",
"short_hash" : "([0-9A-Fa-f]{12})|undefined",
"version" : "Unknown|unknown.format|unknown|UNKNOWN|((\\d+\\.?)*\\d+)"
}
},
"version" : "4244"
}

View File

@@ -0,0 +1,38 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
import static java.math.MathContext.DECIMAL128
BigDecimal RES = 0
int i = 0
ROWS.each { row ->
COLUMNS.each { column ->
def value = row.value(column)
if (value instanceof Number) {
RES = RES.add(value, DECIMAL128)
i++
}
else if (value.toString().isBigDecimal()) {
RES = RES.add(value.toString().toBigDecimal(), DECIMAL128)
i++
}
}
}
if (i > 0) {
RES = RES.divide(i, DECIMAL128)
OUT.append(RES.toString())
}
else {
OUT.append("Not enough values")
}

View File

@@ -0,0 +1,53 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
import static java.math.MathContext.DECIMAL128
def toBigDecimal = { value ->
value instanceof Number ? value as BigDecimal :
value.toString().isBigDecimal() ? value.toString() as BigDecimal :
null
}
def values = []
ROWS.each { row ->
COLUMNS.each { column ->
def bigDecimal = toBigDecimal(row.value(column))
if (bigDecimal != null) {
values.add(bigDecimal)
}
}
}
if (values.isEmpty()) {
OUT.append("Not enough values")
return
}
def sum = BigDecimal.ZERO
values.forEach { value ->
sum = sum.add(value, DECIMAL128)
}
def avg = sum.divide(values.size(), DECIMAL128)
def sumSquaredDiff = BigDecimal.ZERO
values.each { value ->
BigDecimal diff = value.subtract(avg, DECIMAL128)
sumSquaredDiff = sumSquaredDiff.add(diff.multiply(diff, DECIMAL128), DECIMAL128)
}
def variance = sumSquaredDiff.divide(values.size(), DECIMAL128)
def standardDeviation = variance.sqrt(DECIMAL128)
def cv = standardDeviation.divide(avg, DECIMAL128)
OUT.append((cv * 100).round(2) + "%")

View File

@@ -0,0 +1,15 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
OUT.append(COLUMNS.size().toString())

View File

@@ -0,0 +1,21 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
def RES = 0G
ROWS.each { row ->
COLUMNS.each { column ->
RES += 1
}
}
OUT.append(RES.toString())

View File

@@ -0,0 +1,27 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
def RES = 0G
ROWS.each { row ->
COLUMNS.each { column ->
def value = row.value(column)
if (value instanceof Number) {
RES += 1
}
else if (value.toString().isBigDecimal()) {
RES += 1
}
}
}
OUT.append(RES.toString())

View File

@@ -0,0 +1,32 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
values = new ArrayList<BigDecimal>()
ROWS.each { row ->
COLUMNS.each { column ->
def value = row.value(column)
if (value instanceof Number) {
values.add(value as BigDecimal)
}
else if (value.toString().isBigDecimal()) {
values.add(value.toString() as BigDecimal)
}
}
}
if (values.size() == 0) {
OUT.append("Not enough values")
return
}
OUT.append(Collections.max(values).toString())

View File

@@ -0,0 +1,42 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
import static java.math.MathContext.DECIMAL128
def toBigDecimal = { value ->
value instanceof Number ? value as BigDecimal :
value.toString().isBigDecimal() ? value.toString() as BigDecimal :
null
}
def values = []
ROWS.each { row ->
COLUMNS.each { column ->
def bigDecimal = toBigDecimal(row.value(column))
if (bigDecimal != null) {
values.add(bigDecimal)
}
}
}
if (values.isEmpty()) {
OUT.append("Not enough values")
return
}
elementsNumber = values.size()
Collections.sort(values)
mid = (int)elementsNumber / 2
RES = elementsNumber % 2 != 0 ? values[mid] : values[mid].add(values[mid - 1], DECIMAL128).divide(2, DECIMAL128)
OUT.append(RES.toString())

View File

@@ -0,0 +1,31 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
values = new ArrayList<BigDecimal>()
ROWS.each { row ->
COLUMNS.each { column ->
def value = row.value(column)
if (value instanceof Number) {
values.add(value as BigDecimal)
}
else if (value.toString().isBigDecimal()) {
values.add(value.toString() as BigDecimal)
}
}
}
if (values.size() == 0) {
OUT.append("Not enough values")
return
}
OUT.append(Collections.min(values).toString())

View File

@@ -0,0 +1,15 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
OUT.append(ROWS.size().toString())

View File

@@ -0,0 +1,29 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
import static java.math.MathContext.DECIMAL128
BigDecimal RES = 0
ROWS.each { row ->
COLUMNS.each { column ->
def value = row.value(column)
if (value instanceof Number) {
RES = RES.add(value, DECIMAL128)
}
else if (value.toString().isBigDecimal()) {
RES = RES.add(value.toString().toBigDecimal(), DECIMAL128)
}
}
}
OUT.append(RES.toString())

View File

@@ -0,0 +1,37 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
SEPARATOR = ","
QUOTE = "\""
NEWLINE = System.getProperty("line.separator")
def printRow = { values, valueToString ->
values.eachWithIndex { value, idx ->
def str = valueToString(value)
def q = str.contains(SEPARATOR) || str.contains(QUOTE) || str.contains(NEWLINE)
OUT.append(q ? QUOTE : "")
.append(str.replace(QUOTE, QUOTE + QUOTE))
.append(q ? QUOTE : "")
.append(idx != values.size() - 1 ? SEPARATOR : NEWLINE)
}
}
if (!TRANSPOSED) {
ROWS.each { row -> printRow(COLUMNS, { FORMATTER.format(row, it) }) }
}
else {
def values = COLUMNS.collect { new ArrayList<String>() }
ROWS.each { row -> COLUMNS.eachWithIndex { col, i -> values[i].add(FORMATTER.format(row, col)) } }
values.each { printRow(it, { it }) }
}

View File

@@ -0,0 +1,57 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
import static com.intellij.openapi.util.text.StringUtil.escapeXmlEntities
NEWLINE = System.getProperty("line.separator")
def HTML_PATTERN = ~"<.+>"
def printRow = { values, tag, valueToString ->
OUT.append("$NEWLINE<tr>$NEWLINE")
values.each {
def str = valueToString(it)
def escaped = str ==~ HTML_PATTERN
? str
: escapeXmlEntities((str as String).replaceAll("\\t|\\b|\\f", "")).replaceAll("\\r|\\n|\\r\\n", "<br/>")
OUT.append(" <$tag>$escaped</$tag>$NEWLINE")
}
OUT.append("</tr>")
}
OUT.append(
"""<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="UTF-8">
</head>
<body>
<table border="1" style="border-collapse:collapse">""")
if (!TRANSPOSED) {
printRow(COLUMNS, "th") { it.name() }
ROWS.each { row -> printRow(COLUMNS, "td") { FORMATTER.format(row, it) } }
}
else {
def values = COLUMNS.collect { new ArrayList<String>( [it.name()] ) }
ROWS.each { row -> COLUMNS.eachWithIndex { col, i -> values[i].add(FORMATTER.format(row, col)) } }
values.each { printRow(it, "td", { it }) }
}
OUT.append("""
</table>
</body>
</html>
""")

View File

@@ -0,0 +1,49 @@
function eachWithIdx(iterable, f) { var i = iterable.iterator(); var idx = 0; while (i.hasNext()) f(i.next(), idx++); }
function mapEach(iterable, f) { var vs = []; eachWithIdx(iterable, function (i) { vs.push(f(i));}); return vs; }
function escape(str) {
str = str.replace(/\t|\b|\f/g, "");
str = com.intellij.openapi.util.text.StringUtil.escapeXml(str);
str = str.replace(/\r|\n|\r\n/g, "<br/>");
return str;
}
var isHTML = RegExp.prototype.test.bind(/^<.+>$/);
var NEWLINE = "\n";
function output() { for (var i = 0; i < arguments.length; i++) { OUT.append(arguments[i]); } }
function outputRow(items, tag) {
output("<tr>");
for (var i = 0; i < items.length; i++)
output("<", tag, ">", isHTML(items[i]) ? items[i] : escape(items[i]), "</", tag, ">");
output("</tr>", NEWLINE);
}
output("<!DOCTYPE html>", NEWLINE,
"<html>", NEWLINE,
"<head>", NEWLINE,
"<title></title>", NEWLINE,
"<meta charset=\"UTF-8\">", NEWLINE,
"</head>", NEWLINE,
"<body>", NEWLINE,
"<table border=\"1\" style=\"border-collapse:collapse\">", NEWLINE);
if (TRANSPOSED) {
var values = mapEach(COLUMNS, function(col) { return [col.name()]; });
eachWithIdx(ROWS, function (row) {
eachWithIdx(COLUMNS, function (col, i) {
values[i].push(FORMATTER.format(row, col));
});
});
eachWithIdx(COLUMNS, function (_, i) { outputRow(values[i], "td"); });
}
else {
outputRow(mapEach(COLUMNS, function (col) { return col.name(); }), "th");
eachWithIdx(ROWS, function (row) {
outputRow(mapEach(COLUMNS, function (col) { return FORMATTER.format(row, col); }), "td")
});
}
output("</table>", NEWLINE,
"</body>", NEWLINE,
"</html>", NEWLINE);

View File

@@ -0,0 +1,70 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
import static com.intellij.openapi.util.text.StringUtil.escapeStringCharacters as escapeStr
NEWLINE = System.getProperty("line.separator")
INDENT = " "
def printJSON(level, col, o) {
switch (o) {
case null: OUT.append("null"); break
case Tuple: printJSON(level, o[0], o[1]); break
case Map:
OUT.append("{")
o.entrySet().eachWithIndex { entry, i ->
OUT.append("${i > 0 ? "," : ""}$NEWLINE${INDENT * (level + 1)}")
OUT.append("\"${escapeStr(entry.getKey().toString())}\"")
OUT.append(": ")
printJSON(level + 1, col, entry.getValue())
}
OUT.append("$NEWLINE${INDENT * level}}")
break
case Object[]:
case Iterable:
OUT.append("[")
def plain = true
o.eachWithIndex { item, i ->
plain = item == null || item instanceof Number || item instanceof Boolean || item instanceof String
if (plain) {
OUT.append(i > 0 ? ", " : "")
}
else {
OUT.append("${i > 0 ? "," : ""}$NEWLINE${INDENT * (level + 1)}")
}
printJSON(level + 1, col, item)
}
if (plain) OUT.append("]") else OUT.append("$NEWLINE${INDENT * level}]")
break
case Boolean: OUT.append("$o"); break
default:
def str = FORMATTER.formatValue(o, col)
def typeName = FORMATTER.getTypeName(o, col)
def shouldQuote = FORMATTER.isStringLiteral(o, col) && !(typeName.equalsIgnoreCase("json") || typeName.equalsIgnoreCase("jsonb"))
OUT.append(shouldQuote ? "\"${escapeStr(str)}\"" : str);
break
}
}
printJSON(0, null, ROWS.transform { row ->
def map = new LinkedHashMap<String, Object>()
COLUMNS.each { col ->
if (row.hasValue(col)) {
def val = row.value(col)
map.put(col.name(), new Tuple(col, val))
}
}
map
})

View File

@@ -0,0 +1,65 @@
package extensions.data.extractors
NEWLINE = System.getProperty("line.separator")
SEPARATOR = "|"
BACKSLASH = "\\"
BACKQUOTE = "`"
LTAG = "<"
RTAG = ">"
ASTERISK = "*"
UNDERSCORE = "_"
LPARENTH = "("
RPARENTH = ")"
LBRACKET = "["
RBRACKET = "]"
TILDE = "~"
def printRow = { values, firstBold = false, valueToString ->
values.eachWithIndex { value, idx ->
def str = valueToString(value)
.replace(BACKSLASH, BACKSLASH + BACKSLASH)
.replace(SEPARATOR, BACKSLASH + SEPARATOR)
.replace(BACKQUOTE, BACKSLASH + BACKQUOTE)
.replace(ASTERISK, BACKSLASH + ASTERISK)
.replace(UNDERSCORE, BACKSLASH + UNDERSCORE)
.replace(LPARENTH, BACKSLASH + LPARENTH)
.replace(RPARENTH, BACKSLASH + RPARENTH)
.replace(LBRACKET, BACKSLASH + LBRACKET)
.replace(RBRACKET, BACKSLASH + RBRACKET)
.replace(TILDE, BACKSLASH + TILDE)
.replace(LTAG, "&lt;")
.replace(RTAG, "&gt;")
.replaceAll("\r\n|\r|\n", "<br/>")
.replaceAll("\t|\b|\f", "")
OUT.append("| ")
.append(firstBold && idx == 0 ? "**" : "")
.append(str)
.append(firstBold && idx == 0 ? "**" : "")
.append(idx != values.size() - 1 ? " " : " |" + NEWLINE)
}
}
if (TRANSPOSED) {
def values = COLUMNS.collect { new ArrayList<String>([it.name()]) }
def rowCount = 0
ROWS.forEach { row ->
COLUMNS.eachWithIndex { col, i -> values[i].add(FORMATTER.format(row, col)) }
rowCount++
}
for (int i = 0; i <= rowCount; i++) {
OUT.append("| ")
}
OUT.append("|" + NEWLINE)
for (int i = 0; i <= rowCount; i++) {
OUT.append("| :- ")
}
OUT.append("|" + NEWLINE)
values.each { printRow(it, true) { it } }
}
else {
printRow(COLUMNS) { it.name() }
COLUMNS.each { OUT.append("| :--- ") }
OUT.append("|" + NEWLINE)
ROWS.each { row -> printRow(COLUMNS) { FORMATTER.format(row, it) } }
}

View File

@@ -0,0 +1,34 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
SEPARATOR = ", "
QUOTE = "'"
STRING_PREFIX = DIALECT.getDbms().isMicrosoft() ? "N" : ""
KEYWORDS_LOWERCASE = com.intellij.database.util.DbSqlUtil.areKeywordsLowerCase(PROJECT)
KW_NULL = KEYWORDS_LOWERCASE ? "null" : "NULL"
first = true
ROWS.each { row ->
COLUMNS.each { column ->
def value = row.value(column)
def stringValue = value == null ? KW_NULL : FORMATTER.formatValue(value, column)
def isStringLiteral = value != null && FORMATTER.isStringLiteral(value, column)
if (isStringLiteral && DIALECT.getDbms().isMysql()) stringValue = stringValue.replace("\\", "\\\\")
OUT.append(first ? "" : SEPARATOR)
.append(isStringLiteral ? (STRING_PREFIX + QUOTE) : "")
.append(stringValue ? stringValue.replace(QUOTE, QUOTE + QUOTE) : stringValue)
.append(isStringLiteral ? QUOTE : "")
first = false
}
}

View File

@@ -0,0 +1,144 @@
import com.intellij.openapi.util.text.StringUtil
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
WIDTH_BASED_ON_CONTENT = -1
PIPE = "|"
SPACE = " "
CROSS = "+"
MINUS = "-"
ROW_SEPARATORS = false
COLUMN_WIDTH = WIDTH_BASED_ON_CONTENT
NEWLINE = System.getProperty("line.separator")
static def splitByLines(values, size) {
def splitValues = new ArrayList<>()
def maxLines = 0
for (int i = 0; i < size; i++) {
def splitValue = StringUtil.splitByLines(values(i))
splitValues.add(splitValue)
maxLines = Math.max(maxLines, splitValue.size())
}
def byLines = new ArrayList<>(maxLines)
for (int i = 0; i < maxLines; i++) {
def lineValues = new ArrayList<>()
byLines.add(lineValues)
for (int j = 0; j < splitValues.size(); j++) {
def splitValue = splitValues[j]
lineValues.add(splitValue.size() <= i ? null : splitValue[i])
}
}
return byLines
}
def printRow(values, size, width = { COLUMN_WIDTH }, padding = SPACE, separator = { PIPE }) {
def byLines = splitByLines(values, size)
byLines.each { line ->
def lineSize = line.size()
if (lineSize > 0) OUT.append(separator(-1))
for (int i = 0; i < lineSize; i++) {
def value = line[i] == null ? "" : line.get(i)
def curWidth = width(i)
OUT.append(value.padRight(curWidth, padding))
OUT.append(separator(i))
}
OUT.append(NEWLINE)
}
}
def printRows() {
def colNames = COLUMNS.collect { it.name() }
def calcWidth = COLUMN_WIDTH == WIDTH_BASED_ON_CONTENT
def rows
def width
def rowFormatter
if (calcWidth) {
rows = new ArrayList<>()
def widths = new int[COLUMNS.size()]
COLUMNS.eachWithIndex { column, idx -> widths[idx] = column.name().length() }
ROWS.each { row ->
def rowValues = COLUMNS.withIndex().collect { col, idx ->
def value = FORMATTER.format(row, col)
widths[idx] = Math.max(widths[idx], value.length())
value
}
rows.add(rowValues)
}
width = { widths[it] }
rowFormatter = { it }
}
else {
rows = ROWS
width = { COLUMN_WIDTH }
rowFormatter = { COLUMNS.collect { col -> FORMATTER.format(it, col) } }
}
printRow({""}, COLUMNS.size(), { width(it) }, MINUS) { CROSS }
printRow( { colNames[it] }, COLUMNS.size()) { width(it) }
def first = true
rows.each { row ->
def rowValues = rowFormatter(row)
if (first || ROW_SEPARATORS) printRow({""}, COLUMNS.size(), { width(it) }, MINUS) { first ? CROSS : MINUS }
printRow({ rowValues[it] }, rowValues.size()) { width(it) }
first = false
}
printRow({""}, COLUMNS.size(), { width(it) }, MINUS) { CROSS }
}
def printRowsTransposed() {
def calcWidth = COLUMN_WIDTH == WIDTH_BASED_ON_CONTENT
if (calcWidth) {
COLUMN_WIDTHS = new ArrayList<Integer>()
COLUMN_WIDTHS.add(0)
}
def valuesByRow = COLUMNS.collect { col ->
if (calcWidth) COLUMN_WIDTHS.set(0, Math.max(COLUMN_WIDTHS[0], col.name().length()))
new ArrayList<String>([col.name()])
}
def rowCount = 1
ROWS.each { row ->
rowCount++
COLUMNS.eachWithIndex { col, i ->
def formattedValue = FORMATTER.format(row, col)
valuesByRow[i].add(formattedValue)
def widthIdx = rowCount - 1
def length = formattedValue.length()
if (calcWidth) {
if (COLUMN_WIDTHS.size() == widthIdx) COLUMN_WIDTHS.add(length)
COLUMN_WIDTHS.set(widthIdx, Math.max(COLUMN_WIDTHS[widthIdx], length))
}
}
}
valuesByRow.each { row ->
printRow({ "" }, rowCount, { calcWidth ? COLUMN_WIDTHS[it] : COLUMN_WIDTH }, MINUS) {
it <= 0 ? CROSS : it == rowCount - 1 ? CROSS : MINUS
}
printRow({ row[it] }, row.size()) { calcWidth ? COLUMN_WIDTHS[it] : COLUMN_WIDTH }
}
printRow({ "" }, rowCount, { calcWidth ? COLUMN_WIDTHS[it] : COLUMN_WIDTH }, MINUS) {
it <= 0 ? CROSS : it == rowCount - 1 ? CROSS : MINUS
}
}
if (TRANSPOSED) {
printRowsTransposed()
}
else {
printRows()
}

View File

@@ -0,0 +1,62 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
SEP = ", "
QUOTE = "\'"
STRING_PREFIX = DIALECT.getDbms().isMicrosoft() ? "N" : ""
NEWLINE = System.getProperty("line.separator")
KEYWORDS_LOWERCASE = com.intellij.database.util.DbSqlUtil.areKeywordsLowerCase(PROJECT)
KW_INSERT_INTO = KEYWORDS_LOWERCASE ? "insert into " : "INSERT INTO "
KW_VALUES = KEYWORDS_LOWERCASE ? "values" : "VALUES"
KW_NULL = KEYWORDS_LOWERCASE ? "null" : "NULL"
begin = true
def record(columns, dataRow) {
if (begin) {
OUT.append(KW_INSERT_INTO)
if (TABLE == null) OUT.append("MY_TABLE")
else OUT.append(TABLE.getParent().getName()).append(".").append(TABLE.getName())
OUT.append(" (")
columns.eachWithIndex { column, idx ->
OUT.append(column.name()).append(idx != columns.size() - 1 ? SEP : "")
}
OUT.append(")").append(NEWLINE)
OUT.append(KW_VALUES).append(" (")
begin = false
}
else {
OUT.append(",").append(NEWLINE)
OUT.append(" (")
}
columns.eachWithIndex { column, idx ->
def value = dataRow.value(column)
def stringValue = value == null ? KW_NULL : FORMATTER.formatValue(value, column)
def isStringLiteral = value != null && FORMATTER.isStringLiteral(value, column)
if (isStringLiteral && DIALECT.getDbms().isMysql()) stringValue = stringValue.replace("\\", "\\\\")
OUT.append(isStringLiteral ? (STRING_PREFIX + QUOTE) : "")
.append(stringValue ? stringValue.replace(QUOTE, QUOTE + QUOTE) : stringValue)
.append(isStringLiteral ? QUOTE : "")
.append(idx != columns.size() - 1 ? SEP : "")
}
OUT.append(")")
}
ROWS.each { row -> record(COLUMNS, row) }
OUT.append(";")

View File

@@ -0,0 +1,49 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
SEP = ", "
QUOTE = "\'"
STRING_PREFIX = DIALECT.getDbms().isMicrosoft() ? "N" : ""
NEWLINE = System.getProperty("line.separator")
KEYWORDS_LOWERCASE = com.intellij.database.util.DbSqlUtil.areKeywordsLowerCase(PROJECT)
KW_INSERT_INTO = KEYWORDS_LOWERCASE ? "insert into " : "INSERT INTO "
KW_VALUES = KEYWORDS_LOWERCASE ? ") values (" : ") VALUES ("
KW_NULL = KEYWORDS_LOWERCASE ? "null" : "NULL"
def record(columns, dataRow) {
OUT.append(KW_INSERT_INTO)
if (TABLE == null) OUT.append("MY_TABLE")
else OUT.append(TABLE.getParent().getName()).append(".").append(TABLE.getName())
OUT.append(" (")
columns.eachWithIndex { column, idx ->
OUT.append(column.name()).append(idx != columns.size() - 1 ? SEP : "")
}
OUT.append(KW_VALUES)
columns.eachWithIndex { column, idx ->
def value = dataRow.value(column)
def stringValue = value == null ? KW_NULL : FORMATTER.formatValue(value, column)
def isStringLiteral = value != null && FORMATTER.isStringLiteral(value, column)
if (isStringLiteral && DIALECT.getDbms().isMysql()) stringValue = stringValue.replace("\\", "\\\\")
OUT.append(isStringLiteral ? (STRING_PREFIX + QUOTE) : "")
.append(isStringLiteral ? stringValue.replace(QUOTE, QUOTE + QUOTE) : stringValue)
.append(isStringLiteral ? QUOTE : "")
.append(idx != columns.size() - 1 ? SEP : "")
}
OUT.append(");").append(NEWLINE)
}
ROWS.each { row -> record(COLUMNS, row) }

View File

@@ -0,0 +1,93 @@
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col); getTypeName(Object, col); isStringLiteral(Object, col); }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/
import com.intellij.openapi.util.text.StringUtil
import java.util.regex.Pattern
NEWLINE = System.getProperty("line.separator")
pattern = Pattern.compile("[^\\w\\d]")
def escapeTag(name) {
name = pattern.matcher(name).replaceAll("_")
return name.isEmpty() || !Character.isLetter(name.charAt(0)) ? "_$name" : name
}
def printRow(level, rowTag, values) {
def prefix = "$NEWLINE${StringUtil.repeat(" ", level)}"
OUT.append("$prefix<$rowTag>")
values.each { name, col, valuesName, value ->
switch (value) {
case Map:
def mapValues = new ArrayList<Tuple>()
value.each { key, v -> mapValues.add(new Tuple(escapeTag(key.toString()), col, key.toString(), v)) }
printRow(level + 1, name, mapValues)
break
case Object[]:
case Iterable:
def listItems = new ArrayList<Tuple>()
def itemName = valuesName != null ? escapeTag(StringUtil.unpluralize(valuesName) ?: "item") : "item"
value.collect { v -> listItems.add(new Tuple(itemName, col, null, v)) }
printRow(level + 1, name, listItems)
break
default:
OUT.append("$prefix <$name>")
if (value == null) OUT.append("null")
else {
def formattedValue = FORMATTER.formatValue(value, col)
if (isXmlString(formattedValue)) OUT.append(formattedValue)
else OUT.append(StringUtil.escapeXmlEntities(formattedValue))
}
OUT.append("</$name>")
}
}
OUT.append("$prefix</$rowTag>")
}
def isXmlString(string) {
return string.startsWith("<") && string.endsWith(">") && (string.contains("</") || string.contains("/>"))
}
OUT.append(
"""<?xml version="1.0" encoding="UTF-8"?>
<data>""")
if (!TRANSPOSED) {
ROWS.each { row ->
def values = COLUMNS
.findAll { col -> row.hasValue(col) }
.collect { col ->
new Tuple(escapeTag(col.name()), col, col.name(), row.value(col))
}
printRow(0, "row", values)
}
}
else {
def values = COLUMNS.collect { new ArrayList<Tuple>() }
ROWS.eachWithIndex { row, rowIdx ->
COLUMNS.eachWithIndex { col, colIdx ->
if (row.hasValue(col)) {
def value = row.value(col)
values[colIdx].add(new Tuple("row${rowIdx + 1}", col, col.name(), value))
}
}
}
values.eachWithIndex { it, index ->
printRow(0, escapeTag(COLUMNS[index].name()), it)
}
}
OUT.append("""
</data>
""")

View File

@@ -0,0 +1,66 @@
// IJ: extensions = xls;xlsx displayName = XLS
package extensions.data.loaders
@Grab('org.apache.poi:poi:5.2.5')
@Grab('org.apache.poi:poi-ooxml:5.2.5')
import org.apache.poi.ss.usermodel.CellType
import org.apache.poi.ss.usermodel.WorkbookFactory
LOADER.load { ctx ->
loadXls(ctx.getParameters()["FILE"], ctx.getDataConsumer())
}
def loadXls(path, dataConsumer) {
def wb = WorkbookFactory.create(new File(path))
def evaluator = wb.getCreationHelper().createFormulaEvaluator();
def sheet = wb.getSheetAt(0)
produceSheet(sheet, evaluator, dataConsumer)
}
private void produceSheet(sheet, evaluator, dataConsumer) {
def idx = 0
sheet.forEach { row ->
def res = extractRow(row, evaluator)
if (!res.isEmpty()) {
def cur = row.getRowNum()
while (idx < cur - 1) {
dataConsumer.consume(new Object[0])
++idx
}
idx = cur
dataConsumer.consume(res.toArray())
}
}
}
private List<Object> extractRow(row, evaluator) {
def res = new ArrayList<Object>()
row.forEach { cell ->
def cur = cell.getColumnIndex()
while (res.size() < cur) {
res.add(null)
}
def v = evaluator.evaluate(cell)
def rv = cellVal(v)
res.add(rv)
}
res
}
def cellVal(cell) {
if (cell == null) return null
switch (cell.getCellType()) {
case CellType.BOOLEAN:
return cell.getBooleanCellValue()
case CellType.STRING:
return cell.getStringValue()
case CellType.NUMERIC:
return cell.getNumberValue()
case CellType.BLANK:
return null
default:
return cell.formatAsString()
}
}

View File

@@ -0,0 +1,53 @@
import com.intellij.database.model.DasObjectWithSource
import com.intellij.database.model.DasSchemaChild
import com.intellij.database.model.ObjectKind
import com.intellij.database.util.DasUtil
import com.intellij.database.util.ObjectPath
LAYOUT.ignoreDependencies = true
LAYOUT.baseName { ctx -> baseName(ctx.object) }
LAYOUT.fileScope { path -> fileScope(path) }
def baseName(obj) {
def db = DasUtil.getCatalog(obj)
def schema = DasUtil.getSchema(obj)
def file = fileName(obj)
if (db.isEmpty()) {
if (!schema.isEmpty()) return "anonymous/" + sanitize(schema) + "/" + file
return file
}
else if (schema.isEmpty()) {
return sanitize(db) + "/" + file
}
else {
return sanitize(db) + "/" + sanitize(schema) + "/" + file
}
}
def fileName(obj) {
for (def cur = obj; cur != null; cur = cur.dasParent) {
if (storeSeparately(cur)) return sanitize(cur.name)
}
return sanitize(obj.name)
}
def fileScope(path) {
def root = path.getName(0).toString()
if (root.endsWith(".sql")) return null
def next = path.getName(1).toString()
if (next.endsWith(".sql")) {
if (root == "anonymous") return null
return ObjectPath.create(root, ObjectKind.DATABASE)
}
if (root == "anonymous") return ObjectPath.create(next, ObjectKind.SCHEMA)
return ObjectPath.create(root, ObjectKind.DATABASE).append(next, ObjectKind.SCHEMA)
}
def storeSeparately(obj) {
return obj instanceof DasObjectWithSource || obj instanceof DasSchemaChild
}
def sanitize(name) {
return name.replace('/', 'slash')
}

View File

@@ -0,0 +1,42 @@
import com.intellij.database.model.DasObjectWithSource
import com.intellij.database.model.DasSchemaChild
import com.intellij.database.model.ObjectKind
import com.intellij.database.util.DasUtil
import com.intellij.database.util.ObjectPath
LAYOUT.ignoreDependencies = true
LAYOUT.baseName { ctx -> baseName(ctx.object) }
LAYOUT.fileScope { path -> fileScope(path) }
def baseName(obj) {
def schema = DasUtil.getSchema(obj)
def file = fileName(obj)
if (schema.isEmpty()) {
return file
}
else {
return sanitize(schema) + "/" + obj.kind.code() + "/" + file
}
}
def fileName(obj) {
for (def cur = obj; cur != null; cur = cur.dasParent) {
if (storeSeparately(cur)) return sanitize(cur.name)
}
return sanitize(obj.name)
}
def fileScope(path) {
def root = path.getName(0).toString()
if (root.endsWith(".sql")) return null
return ObjectPath.create(root, ObjectKind.SCHEMA)
}
def storeSeparately(obj) {
return obj instanceof DasObjectWithSource || obj instanceof DasSchemaChild
}
def sanitize(name) {
return name.replace('/', 'slash')
}

View File

@@ -0,0 +1,42 @@
import com.intellij.database.model.DasObjectWithSource
import com.intellij.database.model.DasSchemaChild
import com.intellij.database.model.ObjectKind
import com.intellij.database.util.DasUtil
import com.intellij.database.util.ObjectPath
LAYOUT.ignoreDependencies = true
LAYOUT.baseName { ctx -> baseName(ctx.object) }
LAYOUT.fileScope { path -> fileScope(path) }
def baseName(obj) {
def schema = DasUtil.getSchema(obj)
def file = fileName(obj)
if (schema.isEmpty()) {
return file
}
else {
return sanitize(schema) + "/" + file
}
}
def fileName(obj) {
for (def cur = obj; cur != null; cur = cur.dasParent) {
if (storeSeparately(cur)) return sanitize(cur.name)
}
return sanitize(obj.name)
}
def fileScope(path) {
def root = path.getName(0).toString()
if (root.endsWith(".sql")) return null
return ObjectPath.create(root, ObjectKind.SCHEMA)
}
def storeSeparately(obj) {
return obj instanceof DasObjectWithSource || obj instanceof DasSchemaChild
}
def sanitize(name) {
return name.replace('/', 'slash')
}

View File

@@ -0,0 +1,21 @@
import com.intellij.database.model.DasObjectWithSource
import com.intellij.database.model.DasSchemaChild
LAYOUT.baseName { ctx -> baseName(ctx.object) }
LAYOUT.fileName { ctx -> String.format("%03d-%s.sql", ctx.count, ctx.baseName) }
def baseName(obj) {
for (def cur = obj; cur != null; cur = cur.dasParent) {
if (storeSeparately(cur)) return sanitize(cur.name)
}
return sanitize(obj.name)
}
def storeSeparately(obj) {
return obj instanceof DasObjectWithSource || obj instanceof DasSchemaChild
}
def sanitize(name) {
return name.replace('/', 'slash')
}

View File

@@ -0,0 +1,21 @@
import com.intellij.database.model.DasObjectWithSource
import com.intellij.database.model.DasSchemaChild
LAYOUT.ignoreDependencies = true
LAYOUT.baseName { ctx -> baseName(ctx.object) }
def baseName(obj) {
for (def cur = obj; cur != null; cur = cur.dasParent) {
if (storeSeparately(cur)) return sanitize(cur.name)
}
return sanitize(obj.name)
}
def storeSeparately(obj) {
return obj instanceof DasObjectWithSource || obj instanceof DasSchemaChild
}
def sanitize(name) {
return name.replace('/', 'slash')
}

View File

@@ -0,0 +1,74 @@
import com.intellij.database.model.DasTable
import com.intellij.database.util.Case
import com.intellij.database.util.DasUtil
/*
* Available context bindings:
* SELECTION Iterable<DasObject>
* PROJECT project
* FILES files helper
*/
packageName = "com.sample;"
typeMapping = [
(~/(?i)int/) : "long",
(~/(?i)float|double|decimal|real/): "double",
(~/(?i)datetime|timestamp/) : "java.sql.Timestamp",
(~/(?i)date/) : "java.sql.Date",
(~/(?i)time/) : "java.sql.Time",
(~/(?i)/) : "String"
]
FILES.chooseDirectoryAndSave("Choose directory", "Choose where to store generated files") { dir ->
SELECTION.filter { it instanceof DasTable }.each { generate(it, dir) }
}
def generate(table, dir) {
def className = javaName(table.getName(), true)
def fields = calcFields(table)
new File(dir, className + ".java").withPrintWriter { out -> generate(out, className, fields) }
}
def generate(out, className, fields) {
out.println "package $packageName"
out.println ""
out.println ""
out.println "public class $className {"
out.println ""
fields.each() {
if (it.annos != "") out.println " ${it.annos}"
out.println " private ${it.type} ${it.name};"
}
out.println ""
fields.each() {
out.println ""
out.println " public ${it.type} get${it.name.capitalize()}() {"
out.println " return ${it.name};"
out.println " }"
out.println ""
out.println " public void set${it.name.capitalize()}(${it.type} ${it.name}) {"
out.println " this.${it.name} = ${it.name};"
out.println " }"
out.println ""
}
out.println "}"
}
def calcFields(table) {
DasUtil.getColumns(table).reduce([]) { fields, col ->
def spec = Case.LOWER.apply(col.getDasType().getSpecification())
def typeStr = typeMapping.find { p, t -> p.matcher(spec).find() }.value
fields += [[
name : javaName(col.getName(), false),
type : typeStr,
annos: ""]]
}
}
def javaName(str, capitalize) {
def s = com.intellij.psi.codeStyle.NameUtil.splitNameIntoWords(str)
.collect { Case.LOWER.apply(it).capitalize() }
.join("")
.replaceAll(/[^\p{javaJavaIdentifierPart}[_]]/, "_")
capitalize || s.length() == 1? s : Case.LOWER.apply(s[0]) + s[1..-1]
}

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,14 @@
<?xml version="1.0"?>
<migrationMap>
<name value="JUnit (4.x -&gt; 5.0)" />
<description value="For transferring the JUnit 4 test annotations to the new jupiter ones, may result in red code! Assertions won't be migrated.
Please see the 'Java | JUnit issues | JUnit 4 test can be JUnit 5' inspection to migrate only tests which can be converted fully automatically." />
<entry oldName="org.junit.Before" newName="org.junit.jupiter.api.BeforeEach" type="class"/>
<entry oldName="org.junit.BeforeClass" newName="org.junit.jupiter.api.BeforeAll" type="class"/>
<entry oldName="org.junit.After" newName="org.junit.jupiter.api.AfterEach" type="class"/>
<entry oldName="org.junit.AfterClass" newName="org.junit.jupiter.api.AfterAll" type="class"/>
<entry oldName="org.junit.Test" newName="org.junit.jupiter.api.Test" type="class"/>
<entry oldName="org.junit.Ignore" newName="org.junit.jupiter.api.Disabled" type="class"/>
</migrationMap>

View File

@@ -0,0 +1,5 @@
<application>
<component name="AquaNewUserFeedbackInfoState"><![CDATA[{
"userTypedInEditor": true
}]]></component>
</application>

View File

@@ -0,0 +1,6 @@
<application>
<component name="AquaOldUserFeedbackInfoState"><![CDATA[{
"userTypedInEditor": true,
"firstUsageTime": "2024-05-13T16:19:21.627506"
}]]></component>
</application>

View File

@@ -0,0 +1,3 @@
<application>
<component name="CommonFeedbackSurveyService"><![CDATA[{}]]></component>
</application>

View File

@@ -0,0 +1,3 @@
<application>
<component name="DontShowAgainFeedbackService"><![CDATA[{}]]></component>
</application>

View File

@@ -0,0 +1,3 @@
<application>
<component name="KafkaConsumerProducerInfoState"><![CDATA[{}]]></component>
</application>

View File

@@ -0,0 +1,5 @@
<application>
<component name="NewUIInfoState"><![CDATA[{
"enableNewUIDate": "2024-05-13T18:52:55.125134"
}]]></component>
</application>

View File

@@ -0,0 +1,3 @@
<application>
<component name="PyCharmCEFeedbackState"><![CDATA[{}]]></component>
</application>

View File

@@ -0,0 +1,5 @@
<application>
<component name="PyCharmUIInfoState"><![CDATA[{
"newUserFirstRunDate": "2024-05-13T16:17:29.814255"
}]]></component>
</application>

View File

@@ -0,0 +1,175 @@
<application>
<component name="ActionsLocalSummary">
<e n="$SelectAll">
<i c="363" l="1717671166927" />
</e>
<e n="$Undo">
<i c="152" l="1717669152300" />
</e>
<e n="EditorBackSpace">
<i c="954" l="1724138760223" />
</e>
<e n="EditorChooseLookupItem">
<i c="144" l="1717669304916" />
</e>
<e n="EditorCopy">
<i c="23" l="1724138534223" />
</e>
<e n="EditorCut">
<i c="12" l="1724138649421" />
</e>
<e n="EditorDown">
<i c="189" l="1724138650560" />
</e>
<e n="EditorDuplicate">
<i c="1" l="1715845001776" />
</e>
<e n="EditorEnter">
<i c="307" l="1724138762140" />
</e>
<e n="EditorEscape">
<i c="338" l="1717669085666" />
</e>
<e n="EditorLeft">
<i c="160" l="1724138761876" />
</e>
<e n="EditorLeftWithSelection">
<i c="7" l="1717414253892" />
</e>
<e n="EditorLineEnd">
<i c="20" l="1717664908701" />
</e>
<e n="EditorLineStart">
<i c="11" l="1724138635627" />
</e>
<e n="EditorNextWord">
<i c="1" l="1716886114968" />
</e>
<e n="EditorPaste">
<i c="19" l="1724138651338" />
</e>
<e n="EditorPreviousWord">
<i c="5" l="1717126187648" />
</e>
<e n="EditorRight">
<i c="190" l="1717664408909" />
</e>
<e n="EditorRightWithSelection">
<i c="1" l="1716895022454" />
</e>
<e n="EditorStartNewLine">
<i c="1" l="1716965190178" />
</e>
<e n="EditorTab">
<i c="23" l="1724138596529" />
</e>
<e n="EditorUp">
<i c="197" l="1724138651101" />
</e>
<e n="Find">
<i c="3" l="1717658357202" />
</e>
<e n="GotoDeclaration">
<i c="280" l="1717668194936" />
</e>
<e n="GotoLine">
<i c="3" l="1717402779921" />
</e>
<e n="HippieCompletion">
<i c="3" l="1717395097460" />
</e>
<e n="Kotlin.NewFile">
<i c="2" l="1716864639359" />
</e>
<e n="NewFile">
<i c="2" l="1716526653063" />
</e>
<e n="NewTypeScriptFile">
<i c="1" l="1716531088417" />
</e>
<e n="NextTemplateVariable">
<i c="11" l="1717667201250" />
</e>
<e n="PsiViewer">
<i c="5" l="1724138560134" />
</e>
<e n="PsiViewerForContext">
<i c="119" l="1717669183815" />
</e>
<e n="RedesignedRunConfigurationSelector">
<i c="17" l="1715931525531" />
</e>
<e n="ReformatCode">
<i c="403" l="1717664943428" />
</e>
<e n="RenameElement">
<i c="7" l="1716531107003" />
</e>
<e n="ReplaceInPath">
<i c="1" l="1715750491757" />
</e>
<e n="Run">
<i c="3" l="1715858915740" />
</e>
<e n="RunClass">
<i c="6" l="1715931523440" />
</e>
<e n="SelectInProjectView">
<i c="1" l="1715593582035" />
</e>
<e n="SettingsEntryPoint">
<i c="3" l="1717144723281" />
</e>
<e n="Stop">
<i c="1" l="1715931533927" />
</e>
<e n="WelcomeScreen.CreateNewProject">
<i c="1" l="1724138505008" />
</e>
<e n="WelcomeScreen.OpenProject">
<i c="1" l="1715588344107" />
</e>
<e n="com.intellij.codeInsight.daemon.NavigateAction">
<i c="16" l="1715854404250" />
</e>
<e n="com.intellij.dev.psiViewer.stubs.StubDetailsViewer$1">
<i c="1" l="1716531427973" />
</e>
<e n="com.intellij.execution.lineMarker.LineMarkerActionWrapper">
<i c="7" l="1717664194640" />
</e>
<e n="com.intellij.find.SearchReplaceComponent$CloseAction">
<i c="3" l="1717658365924" />
</e>
<e n="com.intellij.ide.plugins.newui.PluginsTab$3$1">
<i c="1" l="1716526709254" />
</e>
<e n="com.intellij.notification.NotificationAction$Simple">
<i c="28" l="1717396848995" />
</e>
<e n="com.intellij.openapi.fileEditor.impl.tabActions.CloseTab">
<i c="32" l="1717658371894" />
</e>
<e n="com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$AnCancelAction">
<i c="42" l="1717406812948" />
</e>
<e n="com.intellij.openapi.wm.impl.SquareAnActionButton">
<i c="4" l="1717396850425" />
</e>
<e n="com.intellij.platform.lsp.api.lsWidget.RestartLspServerAction">
<i c="1" l="1717661339218" />
</e>
<e n="com.intellij.toolWindow.ToolWindowHeader$HideAction">
<i c="1" l="1717394781740" />
</e>
<e n="com.intellij.ui.CommonActionsPanel$AddButton">
<i c="1" l="1715836652419" />
</e>
<e n="com.intellij.ui.CommonActionsPanel$RemoveButton">
<i c="11" l="1715931520232" />
</e>
<e n="editRunConfigurations">
<i c="13" l="1715931526161" />
</e>
</component>
</application>

View File

@@ -0,0 +1,5 @@
<application>
<component name="EditorColorsManagerImpl">
<global_color_scheme name="Dark" />
</component>
</application>

View File

@@ -0,0 +1,5 @@
<application>
<component name="ConsoleFont">
<option name="VERSION" value="1" />
</component>
</application>

View File

@@ -0,0 +1,3 @@
<application>
<component name="LocalDatabaseDriverManager" version="201" />
</application>

View File

@@ -0,0 +1,103 @@
<application>
<component name="DebuggerSettings">
<filter>
<option name="PATTERN" value="com.sun.*" />
<option name="ENABLED" value="true" />
<option name="INCLUDE" value="true" />
</filter>
<filter>
<option name="PATTERN" value="java.*" />
<option name="ENABLED" value="true" />
<option name="INCLUDE" value="true" />
</filter>
<filter>
<option name="PATTERN" value="javax.*" />
<option name="ENABLED" value="true" />
<option name="INCLUDE" value="true" />
</filter>
<filter>
<option name="PATTERN" value="org.omg.*" />
<option name="ENABLED" value="true" />
<option name="INCLUDE" value="true" />
</filter>
<filter>
<option name="PATTERN" value="sun.*" />
<option name="ENABLED" value="true" />
<option name="INCLUDE" value="true" />
</filter>
<filter>
<option name="PATTERN" value="jdk.internal.*" />
<option name="ENABLED" value="true" />
<option name="INCLUDE" value="true" />
</filter>
<filter>
<option name="PATTERN" value="junit.*" />
<option name="ENABLED" value="true" />
<option name="INCLUDE" value="true" />
</filter>
<filter>
<option name="PATTERN" value="org.junit.*" />
<option name="ENABLED" value="true" />
<option name="INCLUDE" value="true" />
</filter>
<filter>
<option name="PATTERN" value="com.intellij.rt.*" />
<option name="ENABLED" value="true" />
<option name="INCLUDE" value="true" />
</filter>
<filter>
<option name="PATTERN" value="com.yourkit.runtime.*" />
<option name="ENABLED" value="true" />
<option name="INCLUDE" value="true" />
</filter>
<filter>
<option name="PATTERN" value="com.springsource.loaded.*" />
<option name="ENABLED" value="true" />
<option name="INCLUDE" value="true" />
</filter>
<filter>
<option name="PATTERN" value="org.springsource.loaded.*" />
<option name="ENABLED" value="true" />
<option name="INCLUDE" value="true" />
</filter>
<filter>
<option name="PATTERN" value="javassist.*" />
<option name="ENABLED" value="true" />
<option name="INCLUDE" value="true" />
</filter>
<filter>
<option name="PATTERN" value="org.apache.webbeans.*" />
<option name="ENABLED" value="true" />
<option name="INCLUDE" value="true" />
</filter>
<filter>
<option name="PATTERN" value="com.ibm.ws.*" />
<option name="ENABLED" value="true" />
<option name="INCLUDE" value="true" />
</filter>
<filter>
<option name="PATTERN" value="org.mockito.*" />
<option name="ENABLED" value="true" />
<option name="INCLUDE" value="true" />
</filter>
<filter>
<option name="PATTERN" value="kotlin.*" />
<option name="ENABLED" value="true" />
<option name="INCLUDE" value="true" />
</filter>
<filter>
<option name="PATTERN" value="androidx.compose.runtime.*" />
<option name="ENABLED" value="true" />
<option name="INCLUDE" value="true" />
</filter>
<filter>
<option name="PATTERN" value="kotlinx.*" />
<option name="ENABLED" value="true" />
<option name="INCLUDE" value="true" />
</filter>
</component>
<component name="XDebuggerSettings">
<data-views />
<general />
</component>
</application>

View File

@@ -0,0 +1,5 @@
<application>
<component name="DefaultFont">
<option name="VERSION" value="1" />
</component>
</application>

View File

@@ -0,0 +1,8 @@
<application>
<component name="CodeInsightSettings">
<option name="AUTO_POPUP_JAVADOC_INFO" value="true" />
</component>
<component name="CodeVisionSettings">
<option name="defaultPosition" value="Right" />
</component>
</application>

View File

@@ -0,0 +1,152 @@
<application>
<component name="FeatureUsageStatistics" first-run="1715588381754" have-been-shown="false" show-in-other="true" show-in-compilation="true">
<feature id="editing.completion.camelHumps" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.completion.smarttype.afternew" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.completion.second.smarttype.aslist" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassists.surroundwith.statement" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.goto.file.line" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.completion.finishBySmartEnter" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.popup.symbol" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="switcher" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.completion.replace" count="0" last-shown="1717669304444" last-used="0" shown-count="527" />
<feature id="codeassists.complete.statement" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="vcs.show.quick.list" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="spring.endpoints.tool.window" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.completion.smarttype.casting" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="spring.inject.entities" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.convert.line.separators" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="db.console.execute" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.recent.files" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="scratch" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="refactoring.move.moveInner" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="vcs.pull.requests" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="vcs.annotate" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="ui.open.last.tool.window" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.reformat.code" count="403" last-shown="0" last-used="1717664943430" shown-count="0" />
<feature id="editing.completion.show.liveTemplates" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.copy.line" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.find.in.files" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.completion.finishByExclamation" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="db.copy.table" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="ui.hide.tool.window" count="1" last-shown="0" last-used="1717394781747" shown-count="0" />
<feature id="navigation.find.replace.in.files.toggle" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="move.element.left.right" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="jar.diff" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="intentions.check.regexp" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="profiler.open.snapshot" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassists.comment.line" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.completion.second.smarttype.chain" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.completion.second.smarttype.toar" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="SearchEverywhere" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editor.delete.line" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.inheritance.hierarchy" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.duplicate" count="1" last-shown="0" last-used="1715845001813" shown-count="0" />
<feature id="editing.copy.reference" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassists.highlight.throws" count="3" last-shown="0" last-used="1716888368650" shown-count="0" />
<feature id="navigation.find" count="3" last-shown="0" last-used="1717658357261" shown-count="0" />
<feature id="codeassists.quickdefinition" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.completion.basic" count="144" last-shown="0" last-used="1717669304926" shown-count="0" />
<feature id="editing.completion.postfix" count="1" last-shown="0" last-used="1716864722813" shown-count="0" />
<feature id="dir.diff" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.recent.locations" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="diagram.show.diff" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.select.word" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="ui.close.other.editors" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="debugger.evaluate.expression" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassists.highlight.usages" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassists.highlight.implements" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="debugger.breakpoint.edit" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.completion.smarttype.general" count="0" last-shown="1716866236054" last-used="0" shown-count="4" />
<feature id="codeassist.inspect.batch" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="db.table.editor" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassists.liveTemplates" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.goto.usages" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassists.comment.block" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="intentions.edit.regexp" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassists.quickdefinition.lookup" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.find.usages" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="spring.endpoint.actions" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.clipboard.history" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.compare.editor.with.clipboard" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="refactoring.rename" count="7" last-shown="0" last-used="1716531107123" shown-count="0" />
<feature id="navigation.popup.action" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="refactoring.show.quick.list" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="db.forget.cached.schemas" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.completion.cancelByControlArrows" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="find.recent.search" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.goto.inspection" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="vcs.show.local.history" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.completion.variable.name" count="2" last-shown="0" last-used="1716866234490" shown-count="0" />
<feature id="vcs.use.integration" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.popup.file" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassists.overrideimplement" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="db.console.run.intention" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="db.diff" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="ui.close.all.editors" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.popup.wildcards" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="refactoring.introduceVariable" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="refactoring.extractMethod" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassists.javadoc.external" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassists.surroundwith.expression" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassists.generate.code" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.goto.declaration" count="281" last-shown="0" last-used="1717668194942" shown-count="0" />
<feature id="editing.completion.finishByDotEtc" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="ui.open.project.tool.window" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.join.lines" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.goto.implementation" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="debugger.breakpoint.non.suspending" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.completion.finishByCtrlDot" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassists.context.actions" count="1" last-shown="0" last-used="1716952942937" shown-count="0" />
<feature id="navigation.select.in" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.completion.global.member.name" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="intentions.fix.javadoc" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="ui.tree.speedsearch" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="ui.horizontal.scrolling" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.replace" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="refactoring.copyClass" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="spring.find.endpoint" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassists.highlight.return" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="ant.quickfix.CreateProperty" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.popup.camelprefix" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.popup.class" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassists.parameterInfo" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="db.table.editor.wrapper" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="find.completion" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="tag.name.completion" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.completion.second.smarttype.array.member" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="diagram.show.popup" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="refactoring.introduceVariable.incompleteStatement" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="db.readonly.datasource" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="vcs.compare.file.versions" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.find.replace.toggle" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.add.carets.using.double.ctrl" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="db.console" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassists.quickjavadoc.lookup" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="ui.scheme.quickswitch" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="navigation.replace.in.files" count="1" last-shown="0" last-used="1715750492074" shown-count="0" />
<feature id="navigation.popup.file.structure" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="ant.quickfix.CreateTarget" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassists.quickjavadoc.ctrln" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="codeassists.quickjavadoc" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="ui.recentchanges" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="diagram.show" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.move.statement.up.down" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.completion.second.basic" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="editing.completion.changeSorting" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="db.assign.color" count="0" last-shown="0" last-used="0" shown-count="0" />
<feature id="spring.select.in" count="0" last-shown="0" last-used="0" shown-count="0" />
<completionStatsTag>
<option name="sparedCharacters" value="687" />
<option name="invocations" value="89" />
<option name="startDate" value="1715529600000" />
<option name="dayCount" value="11" />
<option name="lastDate" value="1717603200000" />
</completionStatsTag>
<fixesStatsTag>
<option name="invocations" value="1" />
<option name="startDate" value="1717344000000" />
<option name="dayCount" value="1" />
<option name="lastDate" value="1717344000000" />
</fixesStatsTag>
</component>
</application>

View File

@@ -0,0 +1,8 @@
<application>
<component name="FileTypeManager" version="18">
<extensionMap>
<removed_mapping ext="apk" approved="true" type="ARCHIVE" />
<removed_mapping ext="psd" approved="true" type="Image" />
</extensionMap>
</component>
</application>

View File

@@ -0,0 +1,10 @@
<application>
<component name="FindSettings">
<mask>*.css</mask>
<mask>*.html</mask>
<mask>*.xml</mask>
<mask>*.jsp</mask>
<mask>*.properties</mask>
<mask>*.java</mask>
</component>
</application>

View File

@@ -0,0 +1,9 @@
<application>
<component name="LessonStateBase">
<option name="map">
<map>
<entry key="java.onboarding" value="NOT_PASSED" />
</map>
</option>
</component>
</application>

View File

@@ -0,0 +1,5 @@
<application>
<component name="GeneralLocalSettings">
<option name="defaultProjectDirectory" />
</component>
</application>

View File

@@ -0,0 +1,8 @@
<application>
<component name="GeneralSettings">
<option name="showTipsOnStartup" value="false" />
</component>
<component name="Registry">
<entry key="ide.experimental.ui" value="true" />
</component>
</application>

View File

@@ -0,0 +1,9 @@
<application>
<component name="IgnoredPluginSuggestions">
<option name="pluginIds">
<list>
<option value="Docker" />
</list>
</option>
</component>
</application>

View File

@@ -0,0 +1,187 @@
<application>
<component name="ProjectJdkTable">
<jdk version="2">
<name value="22" />
<type value="JavaSDK" />
<version value="java version &quot;22.0.1&quot;" />
<homePath value="/Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home" />
<roots>
<annotationsPath>
<root type="composite">
<root url="jar://$APPLICATION_HOME_DIR$/plugins/java/lib/resources/jdkAnnotations.jar!/" type="simple" />
</root>
</annotationsPath>
<classPath>
<root type="composite">
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/com.oracle.graal.graal_enterprise" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/com.oracle.svm.enterprise.truffle" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/com.oracle.svm.extraimage_enterprise" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/java.base" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/java.compiler" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/java.datatransfer" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/java.desktop" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/java.instrument" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/java.logging" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/java.management" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/java.management.rmi" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/java.naming" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/java.net.http" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/java.prefs" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/java.rmi" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/java.scripting" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/java.se" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/java.security.jgss" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/java.security.sasl" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/java.smartcardio" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/java.sql" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/java.sql.rowset" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/java.transaction.xa" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/java.xml" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/java.xml.crypto" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.accessibility" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.attach" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.charsets" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.compiler" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.crypto.cryptoki" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.crypto.ec" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.dynalink" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.editpad" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.graal.compiler" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.graal.compiler.management" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.hotspot.agent" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.httpserver" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.incubator.vector" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.internal.ed" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.internal.jvmstat" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.internal.le" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.internal.opt" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.internal.vm.ci" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.jartool" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.javadoc" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.jcmd" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.jconsole" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.jdeps" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.jdi" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.jdwp.agent" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.jfr" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.jlink" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.jpackage" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.jshell" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.jsobject" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.jstatd" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.localedata" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.management" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.management.agent" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.management.jfr" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.naming.dns" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.naming.rmi" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.net" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.nio.mapmode" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.random" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.sctp" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.security.auth" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.security.jgss" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.unsupported" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.unsupported.desktop" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.xml.dom" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/jdk.zipfs" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/org.graalvm.collections" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/org.graalvm.extraimage.builder" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/org.graalvm.extraimage.librarysupport" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/org.graalvm.nativeimage" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/org.graalvm.nativeimage.llvm" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/org.graalvm.truffle.compiler" type="simple" />
<root url="jrt:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home!/org.graalvm.word" type="simple" />
</root>
</classPath>
<javadocPath>
<root type="composite" />
</javadocPath>
<sourcePath>
<root type="composite">
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/java.se" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.jdi" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.jfr" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.net" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/java.rmi" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/java.sql" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/java.xml" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.jcmd" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.sctp" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/java.base" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.jdeps" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.jlink" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.zipfs" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/java.prefs" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.attach" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.jshell" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.jstatd" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.random" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/java.naming" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.editpad" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.jartool" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.javadoc" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.xml.dom" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/java.desktop" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/java.logging" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.charsets" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.compiler" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.dynalink" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.jconsole" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.jpackage" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.jsobject" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/java.compiler" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/java.net.http" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.crypto.ec" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/java.scripting" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.httpserver" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.jdwp.agent" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.localedata" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.management" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.naming.dns" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.naming.rmi" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/java.instrument" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/java.management" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/java.sql.rowset" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/java.xml.crypto" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.internal.ed" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.internal.le" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.nio.mapmode" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.unsupported" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/java.smartcardio" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.internal.opt" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/org.graalvm.word" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/java.datatransfer" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.accessibility" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.hotspot.agent" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.security.auth" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.security.jgss" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/java.security.jgss" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/java.security.sasl" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.graal.compiler" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.internal.vm.ci" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.management.jfr" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/java.management.rmi" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/java.transaction.xa" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.crypto.cryptoki" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.incubator.vector" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.internal.jvmstat" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.management.agent" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.unsupported.desktop" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/org.graalvm.collections" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/org.graalvm.nativeimage" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/org.graalvm.nativeimage.llvm" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/org.graalvm.truffle.compiler" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/jdk.graal.compiler.management" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/org.graalvm.extraimage.builder" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/com.oracle.graal.graal_enterprise" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/com.oracle.svm.enterprise.truffle" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/com.oracle.svm.extraimage_enterprise" type="simple" />
<root url="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/org.graalvm.extraimage.librarysupport" type="simple" />
</root>
</sourcePath>
</roots>
<additional />
</jdk>
</component>
</application>

View File

@@ -0,0 +1,5 @@
<application>
<component name="K2NewUserTracker">
<option name="lastSavedPluginMode" value="K1" />
</component>
</application>

View File

@@ -0,0 +1,3 @@
<application>
<component name="Logs.Categories"><![CDATA[{}]]></component>
</application>

View File

@@ -0,0 +1,66 @@
<application>
<component name="FileEditorProviderManager">{}</component>
<component name="NotRoamableUiSettings">
<option name="fontSize" value="13.0" />
<option name="presentationModeIdeScale" value="1.75" />
<option name="overrideLafFontsWasMigrated" value="true" />
</component>
<component name="PropertyService"><![CDATA[{
"keyToString": {
"CWM_LOGGING_VERSION": "1",
"InstalledPluginsSearchHistory": "remote\nre\ntypescr\ntypesc\ntypes",
"LANGUAGE_DETECTOR_ASKED_BEFORE": "true",
"LAST_CALCULATED_COLOR_INDEX_KEY": "2",
"MarketplacePluginsSearchHistory": "typesc\ntype",
"NextRunPlatformUpdateBuild": "IC-232.10300.40",
"NextRunPlatformUpdateVersion": "2023.2.6",
"NonModalCommitCustomization.IsApplied": "true",
"PluginConfigurable.selectionTab": "1",
"RunOnceActivity.ide.auto-popup.quick-doc.initialized": "true",
"RunOnceActivity.java.code.vision.default.position.was.set": "true",
"SettingsSearchHistory": "code st",
"StubDetailsViewer.showPreviewDetails": "true",
"ask.about.ctrl.y.shortcut.v2": "true",
"bundled.plugins.list.saved.version": "IC-232.10227.8",
"com.intellij.ide.projectWizard.generators.JavaNewProjectWizard$Step.selectedStep": "IntelliJ",
"enter_selection_count": "5",
"evlsprt3.232": "5",
"evlsprt3.241": "3",
"experimental.ui.on.first.startup": "true",
"experimental.ui.used.version": "241.19072.14",
"file.gist.reindex.count": "4",
"fileTypeChangedCounter": "6",
"fontSizeToResetConsole": "13.0",
"fontSizeToResetEditor": "13.0",
"got.it.tooltip.empty.project.create.file": "1",
"got.it.tooltip.reader.mode.got.it": "1",
"gotit.previous.run": "IC-232.10227.8",
"ide.memory.adjusted": "true",
"ift.hide.welcome.screen.promo": "true",
"installed.kotlin.plugin.version": "241.19072.14-IJ",
"jdk.selected.JAVA_MODULE": "22",
"llm.installer.last.toolwindow.state": "LLM_INSTALLER",
"migrated.non.roamable.values.from.general.settings": "true",
"previousColorScheme": "_@user_Dark",
"project.wizard.group": "NPW.empty-project",
"registry.to.advanced.settings.migration.build": "IU-241.19072.14",
"tasks.pass.word.conversion.enforced": "true",
"ts.lib.d.ts.version": "5.4.3"
},
"keyToStringList": {
"fileTypeDetectors": [
"com.intellij.ide.scratch.ScratchFileServiceImpl$Detector",
"com.intellij.profiler.ultimate.hprof.impl.HprofFileTypeDetector",
"com.intellij.javascript.debugger.sourcemap.SourceMapFileType$MyFileTypeDetector",
"com.intellij.database.vfs.DbStorageFileType$Detector",
"com.jetbrains.nodejs.util.NodeFileTypeDetector$JavaScriptFileTypeDetector",
"com.jetbrains.nodejs.util.NodeFileTypeDetector$TypeScriptFileTypeDetector",
"org.jetbrains.plugins.textmate.TextMateFileType$TextMateFileDetector"
]
}
}]]></component>
<component name="PsiViewerSettings">
<option name="type" value="Slint File file" />
<option name="lastSelectedTabIndex" value="2" />
</component>
</application>

View File

@@ -0,0 +1,5 @@
<application>
<component name="PathMacrosImpl">
<macro name="MAVEN_REPOSITORY" value="/Users/me/.m2/repository" />
</component>
</application>

View File

@@ -0,0 +1,19 @@
<application>
<component name="ProfilerRunConfigurations">
<profilerRunConfigurations>
<item configurationTypeId="IntellijProfilerConfiguration">
<IntellijProfilerConfigurationState name="IntelliJ Profiler" />
</item>
</profilerRunConfigurations>
<knownConfigurationTypes>
<id>IntellijProfilerConfiguration</id>
<id>AsyncProfilerCPUConfiguration</id>
<id>AsyncProfilerMemoryConfiguration</id>
<id>AsyncProfilerConfiguration</id>
<id>JFRSimpleConfiguration</id>
</knownConfigurationTypes>
<migrationStatus>
<status languageGroup="Java Profiler Configuration Type" lastMigrationIndex="3" />
</migrationStatus>
</component>
</application>

View File

@@ -0,0 +1,26 @@
<application>
<component name="RecentProjectsManager">
<option name="additionalInfo">
<map>
<entry key="$USER_HOME$/Desktop/Dev/垃圾桶/intellij-test/intellij-test">
<value>
<RecentProjectMetaInfo frameTitle="intellij-test" projectWorkspaceId="2kuflqIPMJwd5b2B6quHLOGo2oW">
<option name="activationTimestamp" value="1724142610913" />
<option name="binFolder" value="$APPLICATION_HOME_DIR$/bin" />
<option name="build" value="IU-241.19072.14" />
<option name="buildTimestamp" value="1723129440000" />
<option name="colorInfo">
<RecentProjectColorInfo associatedIndex="2" />
</option>
<frame x="260" y="45" width="1400" height="962" />
<option name="productionCode" value="IU" />
<option name="projectOpenTimestamp" value="1724138536626" />
</RecentProjectMetaInfo>
</value>
</entry>
</map>
</option>
<option name="lastOpenedProject" value="$USER_HOME$/Desktop/Dev/垃圾桶/intellij-test/intellij-test" />
<option name="lastProjectLocation" value="$USER_HOME$/Desktop/Dev/垃圾桶/intellij-test" />
</component>
</application>

View File

@@ -0,0 +1,13 @@
<application>
<component name="RunnerLayoutSettings">
<runner id="JavaRunner">
<ViewImpl>
<option name="ID" value="ConsoleContent" />
<option name="placeInGrid" value="bottom" />
</ViewImpl>
<TabImpl>
<option name="bottomProportion" value="0.0" />
</TabImpl>
</runner>
</component>
</application>

View File

@@ -0,0 +1,5 @@
<application>
<component name="SettingsSyncSettings">
<option name="migrationFromOldStorageChecked" value="true" />
</component>
</application>

View File

@@ -0,0 +1,10 @@
<application>
<component name="Trusted.Paths">
<option name="TRUSTED_PROJECT_PATHS">
<map>
<entry key="$USER_HOME$/Desktop/Dev/垃圾桶/intellij-test/intellij-test" value="true" />
<entry key="$USER_HOME$/IdeaProjects/untitled" value="true" />
</map>
</option>
</component>
</application>

View File

@@ -0,0 +1,5 @@
<application>
<component name="UISettings">
<option name="UI_DENSITY" value="COMPACT" />
</component>
</application>

View File

@@ -0,0 +1,9 @@
<application>
<component name="UpdatesConfigurable">
<option name="CHECK_NEEDED" value="false" />
<option name="LAST_BUILD_CHECKED" value="IU-241.19072.14" />
<option name="LAST_TIME_CHECKED" value="1724138771909" />
<option name="OBSOLETE_CUSTOM_REPOSITORIES_CLEAN_NEEDED" value="false" />
<option name="WHATS_NEW_SHOWN_FOR" value="241" />
</component>
</application>

View File

@@ -0,0 +1,3 @@
<application>
<component name="UsagesStatistic" show-notification="false" />
</application>

View File

@@ -0,0 +1,5 @@
<application>
<component name="VcsApplicationSettings">
<option name="COMMIT_FROM_LOCAL_CHANGES" value="true" />
</component>
</application>

View File

@@ -0,0 +1,28 @@
<application>
<component name="DimensionService">
<size key="#com.intellij.internal.psiView.PsiViewerDialog.0.0.3840.2160@192dpi" width="1600" height="1200" />
<size key="GridCell.Tab.0.left.0.0.3840.2160@192dpi" width="2668" height="584" />
<size key="GridCell.Tab.0.center.0.0.3840.2160@192dpi" width="2668" height="584" />
<size key="GridCell.Tab.0.right.0.0.3840.2160@192dpi" width="2668" height="584" />
<size key="GridCell.Tab.0.bottom.0.0.3840.2160@192dpi" width="2668" height="584" />
</component>
<component name="WindowManager">
<frame x="260" y="45" width="1400" height="962" />
</component>
<component name="WindowStateApplicationService">
<state x="548" y="251" key="IDE.errors.dialog" timestamp="1717037495400">
<screen x="0" y="25" width="1920" height="982" />
</state>
<state x="548" y="251" key="IDE.errors.dialog/0.25.1920.982/1920.25.1920.1055" timestamp="1717037495400" />
<state x="960" y="469" width="800" height="664" key="WELCOME_SCREEN" timestamp="1724145075550">
<screen x="0" y="25" width="1920" height="1002" />
</state>
<state x="960" y="469" width="800" height="664" key="WELCOME_SCREEN/0.25.1920.1002/1920.25.1920.1055" timestamp="1724145075550" />
<state x="960" y="492" width="800" height="699" key="WELCOME_SCREEN/0.25.1920.1055/1920.25.1920.982" timestamp="1717406858910" />
<state x="960" y="460" width="800" height="650" key="WELCOME_SCREEN/0.25.1920.982/1920.25.1920.1055" timestamp="1717671613288" />
<state x="560" y="132" width="800" height="674" key="new project wizard" timestamp="1724138535837">
<screen x="0" y="25" width="1920" height="1002" />
</state>
<state x="560" y="132" width="800" height="674" key="new project wizard/0.25.1920.1002/1920.25.1920.1055" timestamp="1724138535837" />
</component>
</application>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,251 @@
<project version="4">
<component name="BookmarksManager">
<option name="groups">
<GroupState>
<option name="name" value="untitled" />
</GroupState>
</option>
</component>
<component name="FileEditorManager">
<leaf ideFingerprint="2vb9ntiinehzr" SIDE_TABS_SIZE_LIMIT_KEY="-1">
<file>
<entry file="file://$PROJECT_DIR$/src/Button.slint">
<provider editor-type-id="text-editor" selected="true">
<state relative-caret-position="66">
<caret line="3" column="36" selection-end-line="18" selection-end-column="35" />
</state>
</provider>
</entry>
</file>
<file current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/builtins.slint">
<provider editor-type-id="text-editor" selected="true">
<state relative-caret-position="298">
<caret line="161" column="17" selection-start-line="161" selection-start-column="17" selection-end-line="161" selection-end-column="17" />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FileTypeUsageLocalSummary"><![CDATA[{
"data": {
"JAVA": {
"usageCount": 13,
"lastUsed": 1717655844299
},
"Slint File": {
"usageCount": 63,
"lastUsed": 1717667161683
},
"WebPreview": {
"usageCount": 1,
"lastUsed": 1717388498830
}
}
}]]></component>
<component name="FindInProjectRecents">
<findStrings>
<find>StandardListViewItem</find>
</findStrings>
<replaceStrings>
<replace />
</replaceStrings>
</component>
<component name="IdeDocumentHistory">
<changedPaths>
<option value="$PROJECT_DIR$/src/Abc.kt" />
<option value="$PROJECT_DIR$/src/name.js" />
<option value="$PROJECT_DIR$/src/name1.ts" />
<option value="$PROJECT_DIR$/src/name.ts" />
<option value="$PROJECT_DIR$/src/Main.kt" />
<option value="$PROJECT_DIR$/src/Main.java" />
<option value="$PROJECT_DIR$/src/main.slint" />
<option value="$PROJECT_DIR$/src/builtins.slint" />
<option value="$PROJECT_DIR$/src/Button.slint" />
</changedPaths>
</component>
<component name="LanguageUsageStatistics">
<language id="JAVA">
<summary usageCount="97" lastUsage="1717655844299" />
</language>
<language id="JavaScript">
<summary usageCount="1" lastUsage="1716530622897" />
</language>
<language id="Slint">
<summary usageCount="262" lastUsage="1717667161683" />
</language>
<language id="TypeScript">
<summary usageCount="3" lastUsage="1716546261002" />
</language>
<language id="kotlin">
<summary usageCount="2" lastUsage="1716864647147" />
</language>
<language id="textmate">
<summary usageCount="64" lastUsage="1717126069813" />
</language>
</component>
<component name="ProjectView">
<navigator currentView="ProjectPane" proportions="" version="1" />
<panes>
<pane id="PackagesPane" />
<pane id="ProjectPane">
<subPane>
<expand>
<path>
<item name="untitled" type="b2602c69:ProjectViewProjectNode" />
<item name="dir{file:///Users/me/IdeaProjects/untitled}" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="untitled" type="b2602c69:ProjectViewProjectNode" />
<item name="dir{file:///Users/me/IdeaProjects/untitled}" type="462c0819:PsiDirectoryNode" />
<item name="dir{file:///Users/me/IdeaProjects/untitled/src}" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
<pane id="Scope" />
</panes>
</component>
<component name="RunConfigurationStartHistory">
<history>
<element setting="Slint viewer.Button.slint" />
<element setting="Slint viewer.main.slint" />
<element setting="Slint viewer.Unnamed (1)" />
<element setting="Slint viewer.Unnamed" />
</history>
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="27456000" />
</component>
<component name="ToolWindowManager">
<layoutV2>
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.22749999" />
<window_info id="Commit" order="1" weight="0.25" />
<window_info id="Structure" order="2" side_tool="true" weight="0.25" />
<window_info anchor="bottom" id="Version Control" order="0" />
<window_info anchor="bottom" id="Problems" order="1" />
<window_info anchor="bottom" id="Problems View" order="2" />
<window_info anchor="bottom" id="Terminal" order="3" />
<window_info anchor="bottom" id="Run" order="4" weight="0.33044806" />
<window_info anchor="bottom" id="Services" order="5" />
<window_info anchor="right" id="Notifications" order="0" weight="0.33035713" />
<window_info anchor="right" id="AIAssistant" order="1" weight="0.33035713" />
<window_info anchor="right" id="Database" order="2" weight="0.25" />
<window_info anchor="right" id="Gradle" order="3" weight="0.25" />
<window_info anchor="right" id="Maven" order="4" weight="0.25" />
<unified_weights bottom="0.33044806" left="0.22749999" right="0.33035713" />
</layoutV2>
<recentWindows>
<value>Project</value>
<value>Notifications</value>
<value>Run</value>
<value>AIAssistant</value>
</recentWindows>
</component>
<component name="WindowStateProjectService">
<state x="560" y="201" key="#com.intellij.execution.impl.EditConfigurationsDialog" timestamp="1715931531348">
<screen x="0" y="25" width="1920" height="982" />
</state>
<state x="560" y="214" key="#com.intellij.execution.impl.EditConfigurationsDialog/0.25.1920.1055/1920.25.1920.982@0.25.1920.1055" timestamp="1715848676881" />
<state x="560" y="201" key="#com.intellij.execution.impl.EditConfigurationsDialog/0.25.1920.982/1920.25.1920.1055@0.25.1920.982" timestamp="1715931531348" />
<state x="588" y="313" width="1332" height="605" key="#com.intellij.internal.psiView.PsiViewerDialog" timestamp="1717671610308">
<screen x="0" y="25" width="1920" height="982" />
</state>
<state x="531" y="25" key="#com.intellij.internal.psiView.PsiViewerDialog/0.25.1920.1055/1920.25.1920.982@0.25.1920.1055" timestamp="1717406812993" />
<state x="588" y="313" width="1332" height="605" key="#com.intellij.internal.psiView.PsiViewerDialog/0.25.1920.982/1920.25.1920.1055@0.25.1920.982" timestamp="1717671610308" />
<state width="1334" height="292" key="GridCell.Tab.0.bottom" timestamp="1717394781743">
<screen x="0" y="25" width="1920" height="982" />
</state>
<state width="1334" height="298" key="GridCell.Tab.0.bottom/0.25.1920.1055/1920.25.1920.982@0.25.1920.1055" timestamp="1715845500395" />
<state width="1334" height="292" key="GridCell.Tab.0.bottom/0.25.1920.982/1920.25.1920.1055@0.25.1920.982" timestamp="1717394781743" />
<state width="1334" height="292" key="GridCell.Tab.0.center" timestamp="1717394781743">
<screen x="0" y="25" width="1920" height="982" />
</state>
<state width="1334" height="298" key="GridCell.Tab.0.center/0.25.1920.1055/1920.25.1920.982@0.25.1920.1055" timestamp="1715845500395" />
<state width="1334" height="292" key="GridCell.Tab.0.center/0.25.1920.982/1920.25.1920.1055@0.25.1920.982" timestamp="1717394781743" />
<state width="1334" height="292" key="GridCell.Tab.0.left" timestamp="1717394781743">
<screen x="0" y="25" width="1920" height="982" />
</state>
<state width="1334" height="298" key="GridCell.Tab.0.left/0.25.1920.1055/1920.25.1920.982@0.25.1920.1055" timestamp="1715845500395" />
<state width="1334" height="292" key="GridCell.Tab.0.left/0.25.1920.982/1920.25.1920.1055@0.25.1920.982" timestamp="1717394781743" />
<state width="1334" height="292" key="GridCell.Tab.0.right" timestamp="1717394781743">
<screen x="0" y="25" width="1920" height="982" />
</state>
<state width="1334" height="298" key="GridCell.Tab.0.right/0.25.1920.1055/1920.25.1920.982@0.25.1920.1055" timestamp="1715845500395" />
<state width="1334" height="292" key="GridCell.Tab.0.right/0.25.1920.982/1920.25.1920.1055@0.25.1920.982" timestamp="1717394781743" />
<state x="548" y="251" width="824" height="534" key="IDE.errors.dialog" timestamp="1717661016042">
<screen x="0" y="25" width="1920" height="982" />
</state>
<state x="548" y="268" width="824" height="533" key="IDE.errors.dialog/0.25.1920.1055/1920.25.1920.982@0.25.1920.1055" timestamp="1717405855676" />
<state x="548" y="251" width="824" height="534" key="IDE.errors.dialog/0.25.1920.982/1920.25.1920.1055@0.25.1920.982" timestamp="1717661016042" />
<state x="1350" y="913" width="350" height="133" key="ProcessPopupWindow" timestamp="1715935852294">
<screen x="0" y="25" width="1920" height="1055" />
</state>
<state x="1350" y="913" width="350" height="133" key="ProcessPopupWindow/0.25.1920.1055/1920.25.1920.982@0.25.1920.1055" timestamp="1715935852294" />
<state x="469" y="158" key="SettingsEditor" timestamp="1717396831306">
<screen x="0" y="25" width="1920" height="982" />
</state>
<state x="469" y="158" key="SettingsEditor/0.25.1920.982/1920.25.1920.1055@0.25.1920.982" timestamp="1717396831306" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/Abc.kt" />
<entry file="file://$PROJECT_DIR$/src/Main.kt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="66">
<caret line="3" column="18" selection-start-line="3" selection-start-column="18" selection-end-line="3" selection-end-column="18" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/name1.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="66">
<caret line="3" column="5" selection-start-line="3" selection-start-column="5" selection-end-line="3" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/name.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="88">
<caret line="4" column="24" selection-start-line="4" selection-start-column="24" selection-end-line="4" selection-end-column="24" />
</state>
</provider>
</entry>
<entry file="jar:///Library/Java/JavaVirtualMachines/graalvm-22.jdk/Contents/Home/lib/src.zip!/java.base/java/lang/Throwable.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="318">
<caret line="124" column="34" selection-start-line="124" selection-start-column="34" selection-end-line="124" selection-end-column="34" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/Main.java">
<provider selected="true" editor-type-id="text-editor">
<state>
<caret column="34" selection-start-column="34" selection-end-column="34" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main.slint">
<provider selected="true" editor-type-id="text-editor">
<state>
<caret line="2" column="21" selection-start-line="2" selection-start-column="21" selection-end-line="2" selection-end-column="21" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/builtins.slint">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="298">
<caret line="161" column="17" selection-start-line="161" selection-start-column="17" selection-end-line="161" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/Button.slint">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="66">
<caret line="3" column="36" selection-end-line="18" selection-end-column="35" />
</state>
</provider>
</entry>
</component>
</project>

View File

@@ -0,0 +1,56 @@
<project version="4">
<component name="BookmarksManager">
<option name="groups">
<GroupState>
<option name="name" value="intellij-test" />
</GroupState>
</option>
</component>
<component name="ProjectView">
<navigator currentView="ProjectPane" proportions="" version="1" />
<panes>
<pane id="PackagesPane" />
<pane id="ProjectPane">
<subPane>
<expand>
<path>
<item name="intellij-test" type="b2602c69:ProjectViewProjectNode" />
<item name="dir{file:///Users/me/Desktop/Dev/垃圾桶/intellij-test/intellij-test}" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="intellij-test" type="b2602c69:ProjectViewProjectNode" />
<item name="dir{file:///Users/me/Desktop/Dev/垃圾桶/intellij-test/intellij-test}" type="462c0819:PsiDirectoryNode" />
<item name="dir{file:///Users/me/Desktop/Dev/垃圾桶/intellij-test/intellij-test/.idea}" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
<pane id="Scope" />
</panes>
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="1082000" />
</component>
<component name="ToolWindowManager">
<layoutV2>
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.33035713" />
<window_info id="Commit" order="1" weight="0.25" />
<window_info id="Structure" order="2" side_tool="true" weight="0.25" />
<window_info anchor="bottom" id="Version Control" order="0" />
<window_info anchor="bottom" id="Problems" order="1" />
<window_info anchor="bottom" id="Problems View" order="2" />
<window_info anchor="bottom" id="Terminal" order="3" />
<window_info anchor="bottom" id="Services" order="4" />
<window_info anchor="right" content_ui="combo" id="Notifications" order="0" weight="0.25" />
<window_info anchor="right" id="AIAssistant" order="1" weight="0.25" />
<window_info anchor="right" id="Database" order="2" weight="0.25" />
<window_info anchor="right" id="Gradle" order="3" weight="0.25" />
<window_info anchor="right" id="Maven" order="4" weight="0.25" />
<unified_weights left="0.33035713" />
</layoutV2>
<recentWindows>
<value>Project</value>
</recentWindows>
</component>
</project>

View File

@@ -0,0 +1,7 @@
2024-06-03 17:44:03,869 [ 121] INFO - #c.i.p.d.t.TelemetryManager - Loaded telemetry tracer service com.intellij.platform.diagnostic.telemetry.impl.TelemetryManagerImpl
2024-06-03 17:44:35,087 [ 129] INFO - #c.i.p.d.t.TelemetryManager - Loaded telemetry tracer service com.intellij.platform.diagnostic.telemetry.impl.TelemetryManagerImpl
2024-06-03 17:45:37,074 [ 99] INFO - #c.i.p.d.t.TelemetryManager - Loaded telemetry tracer service com.intellij.platform.diagnostic.telemetry.impl.TelemetryManagerImpl
2024-06-03 18:20:08,328 [ 159] INFO - #c.i.p.d.t.TelemetryManager - Loaded telemetry tracer service com.intellij.platform.diagnostic.telemetry.impl.TelemetryManagerImpl
2024-06-03 18:21:25,456 [ 96] INFO - #c.i.p.d.t.TelemetryManager - Loaded telemetry tracer service com.intellij.platform.diagnostic.telemetry.impl.TelemetryManagerImpl
2024-08-20 14:26:47,297 [ 141] INFO - #c.i.p.d.t.TelemetryManager - Loaded telemetry tracer service com.intellij.platform.diagnostic.telemetry.impl.TelemetryManagerImpl
2024-08-20 14:27:15,693 [ 92] INFO - #c.i.p.d.t.TelemetryManager - Loaded telemetry tracer service com.intellij.platform.diagnostic.telemetry.impl.TelemetryManagerImpl