#pragma once #include "LibLsp/JsonRpc/serializer.h" struct lsFormattingOptions { struct KeyData { optional _boolean; optional _integer; optional _string; }; // Size of a tab in spaces. int tabSize = 4; // Prefer spaces over tabs. bool insertSpaces = true; /** * Trim trailing whitespace on a line. * * @since 3.15.0 */ optional trimTrailingWhitespace; /** * Insert a newline character at the end of the file if one does not exist. * * @since 3.15.0 */ optional insertFinalNewline; /** * Trim all newlines after the final newline at the end of the file. * * @since 3.15.0 */ optional trimFinalNewlines; optional key; MAKE_SWAP_METHOD( lsFormattingOptions, tabSize, insertSpaces, trimTrailingWhitespace, insertFinalNewline, trimFinalNewlines, key ) }; MAKE_REFLECT_STRUCT( lsFormattingOptions, tabSize, insertSpaces, trimTrailingWhitespace, insertFinalNewline, trimFinalNewlines, key ); extern void Reflect(Reader& visitor, lsFormattingOptions::KeyData& value); extern void Reflect(Writer& visitor, lsFormattingOptions::KeyData& value);