File: //snap/google-cloud-cli/current/lib/googlecloudsdk/command_lib/interactive/style.py
# -*- coding: utf-8 -*- #
# Copyright 2017 Google LLC. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""gcloud interactive static styles."""
from __future__ import absolute_import
from __future__ import division
from __future__ import unicode_literals
from prompt_toolkit import styles
from prompt_toolkit import token
BLUE = '#00DED1'
GREEN = '#008000'
GRAY = '#666666'
DARK_GRAY = '#333333'
BLACK = '#000000'
PURPLE = '#FF00FF'
BOLD = 'bold'
ITALIC = 'underline' # there is no italic
REVERSE = 'reverse'
def Color(foreground=None, background=None, bold=False):
components = []
if foreground:
components.append(foreground)
if background:
components.append('bg:' + background)
if bold:
components.append('bold')
return ' '.join(components)
def GetDocumentStyle():
"""Return the color styles for the layout."""
prompt_styles = styles.default_style_extensions
prompt_styles.update({
token.Token.Menu.Completions.Completion.Current: Color(BLUE, GRAY),
token.Token.Menu.Completions.Completion: Color(BLUE, DARK_GRAY),
token.Token.Toolbar: BOLD,
token.Token.Toolbar.Account: BOLD,
token.Token.Toolbar.Separator: BOLD,
token.Token.Toolbar.Project: BOLD,
token.Token.Toolbar.Help: BOLD,
token.Token.Prompt: BOLD,
token.Token.HSep: Color(GREEN),
token.Token.Markdown.Section: BOLD,
token.Token.Markdown.Definition: BOLD,
token.Token.Markdown.Value: ITALIC,
token.Token.Markdown.Truncated: REVERSE,
token.Token.Purple: BOLD,
})
return styles.PygmentsStyle.from_defaults(style_dict=prompt_styles)