Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Group settings by categories #3652

Merged
merged 4 commits into from Nov 4, 2021
Merged

Conversation

guidezpl
Copy link
Contributor

@guidezpl guidezpl commented Nov 4, 2021

Thought this would be a good way to familiarize myself with all the available settings.

Screen Shot 2021-11-04 at 01 32 30

Also learned you can link to other settings with #target.setting.id#, and fixed two such instances.

Closes #3608

@guidezpl
Copy link
Contributor Author

guidezpl commented Nov 4, 2021

@DanTup Would love feedback!

@DanTup
Copy link
Member

DanTup commented Nov 4, 2021

@guidezpl nice idea! I had previously tried splitting them into Dart/Flutter but wasn't happy with how it looked, but I think this is much better! I have some suggestions for the groups though. I moved a few things around, changed "Running" to "Debugging" (although you can "run without debugging" I think it's a little clearer), and added "Logging".

I'm not super happy with the "Flutter" category (since we're inside "Dart & Flutter") but I think it's probably hard to make more specific. There are also a few things in Flutter that I wonder if should be elsewhere (for example if vmAdditionalArgs is in Debugging, why isn't flutteRunAdditionalArgs since these are equivalents for CLI/Flutter projects).

WDYT?

[
	{
		"title": "Analyzer",
		"properties": [
			"dart.additionalAnalyzerFileExtensions",
			"dart.analysisExcludedFolders",
			"dart.analyzeAngularTemplates",
			"dart.analyzerAdditionalArgs",
			"dart.analyzerDiagnosticsPort",
			"dart.analyzerPath",
			"dart.analyzerSshHost",
			"dart.analyzerVmServicePort",
			"dart.notifyAnalyzerErrors",
			"dart.onlyAnalyzeProjectsWithOpenFiles",
			"dart.showTodos",
			"dart.useLsp",
		]
	},
	{
		"title": "Logging",
		"properties": [
			"dart.analyzerInstrumentationLogFile",
			"dart.analyzerLogFile",
			"dart.dapLogFile",
			"dart.devToolsLogFile",
			"dart.extensionLogFile",
			"dart.flutterDaemonLogFile",
			"dart.flutterRunLogFile",
			"dart.flutterTestLogFile",
			"dart.maxLogLineLength",
			"dart.pubTestLogFile",
			"dart.vmServiceLogFile",
			"dart.webDaemonLogFile",
		]
	},
	{
		"title": "SDK",
		"properties": [
			"dart.checkForSdkUpdates",
			"dart.sdkPath",
			"dart.sdkPaths",
			"dart.flutterSdkPath",
			"dart.flutterSdkPaths",
		]
	},
	{
		"title": "DevTools",
		"properties": [
			"dart.devToolsBrowser",
			"dart.devToolsPort",
			"dart.devToolsReuseWindows",
			"dart.devToolsTheme",
			"dart.embedDevTools",
			"dart.openDevTools",
			"dart.shareDevToolsWithFlutter",
			"dart.showInspectorNotificationsForWidgetErrors",
		]
	},
	{
		"title": "Debugging",
		"properties": [
			"dart.debugSdkLibraries",
			"dart.buildRunnerAdditionalArgs",
			"dart.cliConsole",
			"dart.debugExtensionBackendProtocol",
			"dart.debugExternalPackageLibraries",
			"dart.evaluateGettersInDebugViews",
			"dart.evaluateToStringInDebugViews",
			"dart.hotReloadProgress",
			"dart.promptToRunIfErrors",
			"dart.showDartDeveloperLogs",
			"dart.showDevToolsDebugToolBarButtons",
			"dart.vmAdditionalArgs",
		]
	},
	{
		"title": "Testing",
		"properties": [
			"dart.allowTestsOutsideTestFolder",
			"dart.openTestView",
			"dart.showSkippedTests",
			"dart.useVsCodeTestRunner",
		]
	},
	{
		"title": "Flutter",
		"properties": [
			"dart.flutterAdbConnectOnChromeOs",
			"dart.flutterAdditionalArgs",
			"dart.flutterAttachAdditionalArgs",
			"dart.flutterCreateAndroidLanguage",
			"dart.flutterCreateIOSLanguage",
			"dart.flutterCreateOffline",
			"dart.flutterCreateOrganization",
			"dart.flutterCustomEmulators",
			"dart.flutterGutterIcons",
			"dart.flutterHotReloadOnSave",
			"dart.flutterHotRestartOnSave",
			"dart.flutterOutline",
			"dart.flutterRunAdditionalArgs",
			"dart.flutterScreenshotPath",
			"dart.flutterSelectDeviceWhenConnected",
			"dart.flutterShowEmulators",
			"dart.flutterShowWebServerDevice",
			"dart.flutterStructuredErrors",
			"dart.flutterTestAdditionalArgs",
			"dart.flutterTrackWidgetCreation",
			"dart.flutterWebRenderer",
		]
	},
	{
		"title": "Editor",
		"properties": [
			"dart.analysisServerFolding",
			"dart.autoImportCompletions",
			"dart.automaticCommentSlashes",
			"dart.closingLabels",
			"dart.completeFunctionCalls",
			"dart.doNotFormat",
			"dart.enableCompletionCommitCharacters",
			"dart.enableSdkFormatter",
			"dart.enableSnippets",
			"dart.insertArgumentPlaceholders",
			"dart.lineLength",
			"dart.lspSnippetTextEdits",
			"dart.renameFilesWithClasses",
			"dart.showDartPadSampleCodeLens",
			"dart.showIgnoreQuickFixes",
			"dart.showMainCodeLens",
			"dart.showTestCodeLens",
			"dart.triggerSignatureHelpAutomatically",
			"dart.updateImportsOnRename",
			"dart.warnWhenEditingFilesInPubCache",
			"dart.warnWhenEditingFilesOutsideWorkspace",
		]
	},
	{
		"title": "Pub",
		"properties": [
			"dart.promptToGetPackages",
			"dart.pubAdditionalArgs",
			"dart.runPubGetOnPubspecChanges",
		]
	},
	{
		"title": "Other",
		"order": 9,
		"properties": [
			"dart.allowAnalytics",
			"dart.env",
		]
	},
	{
		"title": "Experimental",
		"order": 10,
		"properties": [
			"dart.enableServerSnippets",
			"dart.normalizeFileCasing",
			"dart.previewBazelWorkspaceCustomScripts",
			"dart.previewCommitCharacters",
			"dart.previewFlutterUiGuides",
			"dart.previewFlutterUiGuidesCustomTracking",
			"dart.previewHotReloadOnSaveWatcher",
		]
	}
]

@guidezpl
Copy link
Contributor Author

guidezpl commented Nov 4, 2021

I agree with your feedback. WDYT about 'Run and Debug' to match the side bar?

Screen Shot 2021-11-04 at 12 19 34

Without a top level-name, it defaults to Dart, which makes sense

  • the vast majority of default extensions listed in settings are languages
  • doesn't conflict with Flutter sub-heading

I wasn't sure whether to put showDevToolsDebugToolBarButtons under Dev Tools or not. I actually don't even understand what this setting does, can you clarify?

As for Flutter, some stuff could go in the Run/Debug category, some maybe in Editor (gutter icons, outline), but others relate to create commands and I'm not sure where those would go.

@DanTup
Copy link
Member

DanTup commented Nov 4, 2021

WDYT about 'Run and Debug' to match the side bar?

I like that better :-)

Without a top level-name, it defaults to Dart, which makes sense

Ah, I missed that. I guess we can't change this (it's just the extension name)? I'd prefer it said "Dart & Flutter" even if it does make the Flutter section look a little weird, as when collapsed it might not be obvious that the Flutter settings are within here.

There is a plan to move all the Flutter extensions to the Flutter extension, but that hasn't happened yet (although I wonder whether it's a bit job - perhaps we only need to move the manifest part, and the code in Dart's config class would just continue to work 🤔).

I wasn't sure whether to put showDevToolsDebugToolBarButtons under Dev Tools or not. I actually don't even understand what this setting does, can you clarify?

Perhaps the description can be improved if it's not obvious then. It lets you disable the extra buttons that are added to the debug toolbar that open the Widget Inspector/Timeline view in DevTools (see #2836).

As for Flutter, some stuff could go in the Run/Debug category, some maybe in Editor (gutter icons, outline), but others relate to create commands and I'm not sure where those would go.

Perhaps if we moved them to the Flutter extension it'd be a little clearer (Flutter -> Run & Debug, Flutter -> Editor, Flutter -> Project Creation), although I think what's in the list above is good enough. There's a good search in settings anyway, so I'm sure people will find what they need.

@guidezpl
Copy link
Contributor Author

guidezpl commented Nov 4, 2021

I guess we can't change this (it's just the extension name)?

Afraid not, with categories.

perhaps we only need to move the manifest part, and the code in Dart's config class would just continue to work 🤔).

Yeah, I think it might work.

Perhaps the description can be improved if it's not obvious then. It lets you disable the extra buttons that are added to the debug toolbar that open the Widget Inspector/Timeline view in DevTools (see #2836).

Ah okay, I added "floating" to the description to clarify.

Perhaps if we moved them to the Flutter extension it'd be a little clearer (Flutter -> Run & Debug, Flutter -> Editor, Flutter -> Project Creation), although I think what's in the list above is good enough. There's a good search in settings anyway, so I'm sure people will find what they need.

Agreed

Otherwise, should be good to merge

@DanTup
Copy link
Member

DanTup commented Nov 4, 2021

Ah okay, I added "floating" to the description to clarify.

The bar is actually dockable so not always floating :-) But I think it's fine described like this - anyone that docked it should be aware that they did this, so I think they'll understand what it means.

Thanks!

@DanTup DanTup merged commit 2e36dd0 into Dart-Code:master Nov 4, 2021
@DanTup DanTup added this to the v3.29.0 milestone Nov 4, 2021
@guidezpl guidezpl deleted the categorize-settings branch November 4, 2021 15:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Group settings by categories
2 participants