Prefer constexpr over const across the codebase (#9587)

Supports #2941

Previous PRs: #3362 #3416
This commit is contained in:
Chester Liu 2021-03-30 00:03:16 +08:00 committed by GitHub
parent 12275c8599
commit 806d992a06
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 62 additions and 65 deletions

View file

@ -26,15 +26,15 @@ WORD XtermToWindowsIndex(const size_t index) noexcept;
WORD Xterm256ToWindowsIndex(const size_t index) noexcept;
WORD XtermToLegacy(const size_t xtermForeground, const size_t xtermBackground);
const WORD WINDOWS_RED_ATTR = FOREGROUND_RED;
const WORD WINDOWS_GREEN_ATTR = FOREGROUND_GREEN;
const WORD WINDOWS_BLUE_ATTR = FOREGROUND_BLUE;
const WORD WINDOWS_BRIGHT_ATTR = FOREGROUND_INTENSITY;
constexpr WORD WINDOWS_RED_ATTR = FOREGROUND_RED;
constexpr WORD WINDOWS_GREEN_ATTR = FOREGROUND_GREEN;
constexpr WORD WINDOWS_BLUE_ATTR = FOREGROUND_BLUE;
constexpr WORD WINDOWS_BRIGHT_ATTR = FOREGROUND_INTENSITY;
const WORD XTERM_RED_ATTR = 0x01;
const WORD XTERM_GREEN_ATTR = 0x02;
const WORD XTERM_BLUE_ATTR = 0x04;
const WORD XTERM_BRIGHT_ATTR = 0x08;
constexpr WORD XTERM_RED_ATTR = 0x01;
constexpr WORD XTERM_GREEN_ATTR = 0x02;
constexpr WORD XTERM_BLUE_ATTR = 0x04;
constexpr WORD XTERM_BRIGHT_ATTR = 0x08;
enum class CursorType : unsigned int
{

View file

@ -26,37 +26,36 @@ Author(s):
#define IsEastAsianCP(cp) ((cp) == CP_JAPANESE || (cp) == CP_KOREAN || (cp) == CP_CHINESE_TRADITIONAL || (cp) == CP_CHINESE_SIMPLIFIED)
// UNICODE_NULL is a Windows macro definition
const wchar_t UNICODE_BACKSPACE = 0x8;
const wchar_t UNICODE_ESC = 0x1b;
const wchar_t UNICODE_DEL = 0x7f;
constexpr wchar_t UNICODE_BACKSPACE = 0x8;
constexpr wchar_t UNICODE_ESC = 0x1b;
constexpr wchar_t UNICODE_DEL = 0x7f;
// NOTE: This isn't actually a backspace. It's a graphical block. But
// I believe it's emitted by one of our ANSI/OEM --> Unicode conversions.
// We should dig further into this in the future.
const wchar_t UNICODE_BEL = 0x7;
const wchar_t UNICODE_BACKSPACE2 = 0x25d8;
const wchar_t UNICODE_CARRIAGERETURN = 0x0d;
const wchar_t UNICODE_LINEFEED = 0x0a;
const wchar_t UNICODE_BELL = 0x07;
const wchar_t UNICODE_TAB = 0x09;
const wchar_t UNICODE_SPACE = 0x20;
const wchar_t UNICODE_LEFT_SMARTQUOTE = 0x201c;
const wchar_t UNICODE_RIGHT_SMARTQUOTE = 0x201d;
const wchar_t UNICODE_EM_DASH = 0x2014;
const wchar_t UNICODE_EN_DASH = 0x2013;
const wchar_t UNICODE_NBSP = 0xa0;
const wchar_t UNICODE_NARROW_NBSP = 0x202f;
const wchar_t UNICODE_QUOTE = L'\"';
const wchar_t UNICODE_HYPHEN = L'-';
const wchar_t UNICODE_BOX_DRAW_LIGHT_DOWN_AND_RIGHT = 0x250c;
const wchar_t UNICODE_BOX_DRAW_LIGHT_DOWN_AND_LEFT = 0x2510;
const wchar_t UNICODE_BOX_DRAW_LIGHT_HORIZONTAL = 0x2500;
const wchar_t UNICODE_BOX_DRAW_LIGHT_VERTICAL = 0x2502;
const wchar_t UNICODE_BOX_DRAW_LIGHT_UP_AND_RIGHT = 0x2514;
const wchar_t UNICODE_BOX_DRAW_LIGHT_UP_AND_LEFT = 0x2518;
const wchar_t UNICODE_INVALID = 0xFFFF;
constexpr wchar_t UNICODE_BACKSPACE2 = 0x25d8;
constexpr wchar_t UNICODE_CARRIAGERETURN = 0x0d;
constexpr wchar_t UNICODE_LINEFEED = 0x0a;
constexpr wchar_t UNICODE_BELL = 0x07;
constexpr wchar_t UNICODE_TAB = 0x09;
constexpr wchar_t UNICODE_SPACE = 0x20;
constexpr wchar_t UNICODE_LEFT_SMARTQUOTE = 0x201c;
constexpr wchar_t UNICODE_RIGHT_SMARTQUOTE = 0x201d;
constexpr wchar_t UNICODE_EM_DASH = 0x2014;
constexpr wchar_t UNICODE_EN_DASH = 0x2013;
constexpr wchar_t UNICODE_NBSP = 0xa0;
constexpr wchar_t UNICODE_NARROW_NBSP = 0x202f;
constexpr wchar_t UNICODE_QUOTE = L'\"';
constexpr wchar_t UNICODE_HYPHEN = L'-';
constexpr wchar_t UNICODE_BOX_DRAW_LIGHT_DOWN_AND_RIGHT = 0x250c;
constexpr wchar_t UNICODE_BOX_DRAW_LIGHT_DOWN_AND_LEFT = 0x2510;
constexpr wchar_t UNICODE_BOX_DRAW_LIGHT_HORIZONTAL = 0x2500;
constexpr wchar_t UNICODE_BOX_DRAW_LIGHT_VERTICAL = 0x2502;
constexpr wchar_t UNICODE_BOX_DRAW_LIGHT_UP_AND_RIGHT = 0x2514;
constexpr wchar_t UNICODE_BOX_DRAW_LIGHT_UP_AND_LEFT = 0x2518;
constexpr wchar_t UNICODE_INVALID = 0xFFFF;
// This is the "Ctrl+C" character.
// With VKey='C', it generates a CTRL_C_EVENT
// With VKey=VK_CANCEL (0x3), it generates a CTRL_BREAK_EVENT
const wchar_t UNICODE_ETX = L'\x3';
const wchar_t UNICODE_REPLACEMENT = 0xFFFD;
constexpr wchar_t UNICODE_ETX = L'\x3';
constexpr wchar_t UNICODE_REPLACEMENT = 0xFFFD;

View file

@ -14,26 +14,26 @@ using namespace Microsoft::Console::VirtualTerminal;
using namespace Microsoft::Console::VirtualTerminal::DispatchTypes;
// clang-format off
const BYTE BLUE_ATTR = 0x01;
const BYTE GREEN_ATTR = 0x02;
const BYTE RED_ATTR = 0x04;
const BYTE BRIGHT_ATTR = 0x08;
const BYTE DARK_BLACK = 0;
const BYTE DARK_RED = RED_ATTR;
const BYTE DARK_GREEN = GREEN_ATTR;
const BYTE DARK_YELLOW = RED_ATTR | GREEN_ATTR;
const BYTE DARK_BLUE = BLUE_ATTR;
const BYTE DARK_MAGENTA = RED_ATTR | BLUE_ATTR;
const BYTE DARK_CYAN = GREEN_ATTR | BLUE_ATTR;
const BYTE DARK_WHITE = RED_ATTR | GREEN_ATTR | BLUE_ATTR;
const BYTE BRIGHT_BLACK = BRIGHT_ATTR;
const BYTE BRIGHT_RED = BRIGHT_ATTR | RED_ATTR;
const BYTE BRIGHT_GREEN = BRIGHT_ATTR | GREEN_ATTR;
const BYTE BRIGHT_YELLOW = BRIGHT_ATTR | RED_ATTR | GREEN_ATTR;
const BYTE BRIGHT_BLUE = BRIGHT_ATTR | BLUE_ATTR;
const BYTE BRIGHT_MAGENTA = BRIGHT_ATTR | RED_ATTR | BLUE_ATTR;
const BYTE BRIGHT_CYAN = BRIGHT_ATTR | GREEN_ATTR | BLUE_ATTR;
const BYTE BRIGHT_WHITE = BRIGHT_ATTR | RED_ATTR | GREEN_ATTR | BLUE_ATTR;
constexpr BYTE BLUE_ATTR = 0x01;
constexpr BYTE GREEN_ATTR = 0x02;
constexpr BYTE RED_ATTR = 0x04;
constexpr BYTE BRIGHT_ATTR = 0x08;
constexpr BYTE DARK_BLACK = 0;
constexpr BYTE DARK_RED = RED_ATTR;
constexpr BYTE DARK_GREEN = GREEN_ATTR;
constexpr BYTE DARK_YELLOW = RED_ATTR | GREEN_ATTR;
constexpr BYTE DARK_BLUE = BLUE_ATTR;
constexpr BYTE DARK_MAGENTA = RED_ATTR | BLUE_ATTR;
constexpr BYTE DARK_CYAN = GREEN_ATTR | BLUE_ATTR;
constexpr BYTE DARK_WHITE = RED_ATTR | GREEN_ATTR | BLUE_ATTR;
constexpr BYTE BRIGHT_BLACK = BRIGHT_ATTR;
constexpr BYTE BRIGHT_RED = BRIGHT_ATTR | RED_ATTR;
constexpr BYTE BRIGHT_GREEN = BRIGHT_ATTR | GREEN_ATTR;
constexpr BYTE BRIGHT_YELLOW = BRIGHT_ATTR | RED_ATTR | GREEN_ATTR;
constexpr BYTE BRIGHT_BLUE = BRIGHT_ATTR | BLUE_ATTR;
constexpr BYTE BRIGHT_MAGENTA = BRIGHT_ATTR | RED_ATTR | BLUE_ATTR;
constexpr BYTE BRIGHT_CYAN = BRIGHT_ATTR | GREEN_ATTR | BLUE_ATTR;
constexpr BYTE BRIGHT_WHITE = BRIGHT_ATTR | RED_ATTR | GREEN_ATTR | BLUE_ATTR;
// clang-format on
// Routine Description:

View file

@ -11,7 +11,7 @@ using namespace Microsoft::Console::VirtualTerminal;
#ifdef BUILD_ONECORE_INTERACTIVITY
#include "../../interactivity/inc/VtApiRedirection.hpp"
#endif
static const int s_MaxDefaultCoordinate = 94;
static constexpr int s_MaxDefaultCoordinate = 94;
// Alternate scroll sequences
static constexpr std::wstring_view CursorUpSequence{ L"\x1b[A" };

View file

@ -19,8 +19,6 @@
using namespace Microsoft::Console::VirtualTerminal;
DWORD const dwAltGrFlags = LEFT_CTRL_PRESSED | RIGHT_ALT_PRESSED;
TerminalInput::TerminalInput(_In_ std::function<void(std::deque<std::unique_ptr<IInputEvent>>&)> pfn) :
_leadingSurrogate{}
{

View file

@ -24,20 +24,20 @@ Author(s):
namespace Microsoft::Console::VirtualTerminal
{
// The values used by VkKeyScan to encode modifiers in the high order byte
const short KEYSCAN_SHIFT = 1;
const short KEYSCAN_CTRL = 2;
const short KEYSCAN_ALT = 4;
constexpr short KEYSCAN_SHIFT = 1;
constexpr short KEYSCAN_CTRL = 2;
constexpr short KEYSCAN_ALT = 4;
// The values with which VT encodes modifier values.
const short VT_SHIFT = 1;
const short VT_ALT = 2;
const short VT_CTRL = 4;
constexpr short VT_SHIFT = 1;
constexpr short VT_ALT = 2;
constexpr short VT_CTRL = 4;
// The assumed values for SGR Mouse Scroll Wheel deltas
constexpr DWORD SCROLL_DELTA_BACKWARD = 0xFF800000;
constexpr DWORD SCROLL_DELTA_FORWARD = 0x00800000;
const size_t WRAPPED_SEQUENCE_MAX_LENGTH = 8;
constexpr size_t WRAPPED_SEQUENCE_MAX_LENGTH = 8;
// For reference, the equivalent INPUT_RECORD values are:
// RIGHT_ALT_PRESSED 0x0001