terminal/doc
Dustin L. Howett (MSFT) 64489b1ec1
rename profiles.json to settings.json, clean up the defaults (#5199)
This pull request migrates `profiles.json` to `settings.json` and removes the legacy roaming AppData settings migrator.

It also:

* separates the key bindings in defaults.json into logical groups
* syncs the universal terminal defaults with the primary defaults
* removes some stray newlines that ended up at the beginning of settings.json and defaults.json

Fixes #5186.
Fixes #3291.

### categorize key bindings

### sync universal with main

### kill stray newlines in template files

### move profiles.json to settings.json

This commit also changes Get*Settings from returning a string to
returning a std::filesystem::path. We gain in expressiveness without a
loss in clarity (since path still supports .c_str()).

NOTE: I tried to do an atomic rename with the handle open, but it didn't
work for reparse points (it moves the destination of a symbolic link
out into the settings folder directly.)

(snip for atomic rename code)

```c++
auto path{ pathToSettingsFile.wstring() };
auto renameBufferSize{ sizeof(FILE_RENAME_INFO) + (path.size() * sizeof(wchar_t)) };
auto renameBuffer{ std::make_unique<std::byte[]>(renameBufferSize) };
auto renameInfo{ reinterpret_cast<FILE_RENAME_INFO*>(renameBuffer.get()) };
renameInfo->Flags = FILE_RENAME_FLAG_REPLACE_IF_EXISTS | FILE_RENAME_FLAG_POSIX_SEMANTICS;
renameInfo->RootDirectory = nullptr;
renameInfo->FileNameLength = gsl::narrow_cast<DWORD>(path.size());
std::copy(path.cbegin(), path.cend(), std::begin(renameInfo->FileName));

THROW_IF_WIN32_BOOL_FALSE(SetFileInformationByHandle(hLegacyFile.get(),
                          FileRenameInfo,
                          renameBuffer.get(),
                          gsl::narrow_cast<DWORD>(renameBufferSize)));
```

(end snip)

### Stop resurrecting dead roaming profiles
2020-04-01 19:09:42 +00:00
..
cascadia Use an Automatic split for splitPane by default (#5194) 2020-04-01 00:59:31 +00:00
images Adding higher resolution panes image 2019-11-15 14:28:43 -08:00
reference added UTF8 torture test text file and a solution dependency graph diagram. (#1166) 2019-06-07 15:54:04 -05:00
specs ci: run spell check in CI, fix remaining issues (#4799) 2020-03-25 11:02:53 -07:00
user-docs rename profiles.json to settings.json, clean up the defaults (#5199) 2020-04-01 19:09:42 +00:00
AddASetting.md Fixed typo's and improved consistency. (#704) 2019-05-15 21:02:42 -07:00
bot.md Changed feedback hub request rule (#2680) 2019-09-06 08:55:13 -05:00
building.md doc: add docs for updating nuget packages and using .nupkgs (#4996) 2020-03-19 10:14:50 -07:00
ConsoleCtrlEvent.md Fixed typo's and improved consistency. (#704) 2019-05-15 21:02:42 -07:00
ConsoleHostSettings.md Added information on WxH character (#2104) 2019-08-01 08:34:18 -05:00
Debugging.md doc: Add debugging notes on DebugBreak (#4163) 2020-01-09 17:56:05 -08:00
EXCEPTIONS.md Code highlighting and capitalization fix for doc/EXCEPTIONS.md (#1283) 2019-06-17 23:41:27 +00:00
Niksa.md Fix a bunch of spelling errors across the project (#4295) 2020-02-10 20:40:01 +00:00
ORGANIZATION.md Fix a bunch of spelling errors across the project (#4295) 2020-02-10 20:40:01 +00:00
STYLE.md Converts Dispatcher().RunAsync to WinRT Coroutines (#4051) 2020-01-10 03:29:49 +00:00
submitting_code.md doc: Update submitting_code.md (#2499) 2019-08-21 10:38:51 -07:00
TAEF.md Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
terminal-v1-roadmap.md doc: update roadmap with proper v1 release date (#4860) 2020-03-09 17:04:54 -07:00
UniversalTest.md Fixed typo's and improved consistency. (#704) 2019-05-15 21:02:42 -07:00
virtual-dtors.md Fix a bunch of spelling errors across the project (#4295) 2020-02-10 20:40:01 +00:00
WIL.md Fix WIL doc summary (#786) 2019-05-14 13:11:41 -07:00
WindowsTestPasses.md Fixed typo's and improved consistency. (#704) 2019-05-15 21:02:42 -07:00