/*******************************************************************************
 * Copyright (c) 2014, 2020 Lars Vogel and others.
 *
 * This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 * Contributors:
 *     Lars Vogel <Lars.Vogel@gmail.com> - initial API and implementation
 *     Andrea Guarinoni <andrea.guarinoni@gmail.com> - intial color schema definition
 *******************************************************************************/

/* ############################## JDT syntax highlighting ############################## */

IEclipsePreferences#org-eclipse-jdt-ui:org-eclipse-jdt-ui { /* pseudo attribute added to allow contributions without replacing this node, see Bug 466075 */
	preferences:
		'content_assist_completion_replacement_background=200,200,0'
		'content_assist_completion_replacement_foreground=200,0,0'
		'content_assist_parameters_background=52,57,61'
		'content_assist_parameters_foreground=238,238,238'
		'content_assist_proposals_background=52,57,61'
		'content_assist_proposals_foreground=238,238,238'
		'java_bracket=249,250,244'
		'java_comment_task_tag=154,140,124'
		'java_default=217,232,247'
		'java_doc_default=128,128,128'
		'java_doc_keyword=154,140,124'
		'java_doc_link=169,156,140'
		'java_doc_tag=30,120,155'
		'java_keyword=204,108,29'
		'java_keyword_bold=false'
		'java_keyword_return=204,108,29'
		'java_keyword_return_bold=false'
		'java_multi_line_comment=128,128,128'
		'java_operator=230,230,250'
		'java_single_line_comment=128,128,128'
		'java_string=23,198,163'
		'matchingBracketsColor=249,250,244'
		'pf_coloring_argument=221,40,103'
		'pf_coloring_assignment=217,232,247'
		'pf_coloring_comment=128,128,128'
		'pf_coloring_key=217,232,247'
		'pf_coloring_value=23,198,163'
		'semanticHighlighting.abstractClass.color=62,171,230'
		'semanticHighlighting.abstractClass.enabled=true'
		'semanticHighlighting.abstractMethodInvocation.color=128,246,167'
		'semanticHighlighting.abstractMethodInvocation.enabled=true'
		'semanticHighlighting.annotation.color=160,160,160'
		'semanticHighlighting.annotation.enabled=true'
		'semanticHighlighting.annotation.italic=true'
		'semanticHighlighting.annotationElementReference.color=235,75,100'
		'semanticHighlighting.annotationElementReference.enabled=true'
		'semanticHighlighting.class.color=18,144,195'
		'semanticHighlighting.class.enabled=true'
		'semanticHighlighting.deprecatedMember.color=128,128,128'
		'semanticHighlighting.deprecatedMember.enabled=true'
		'semanticHighlighting.deprecatedMember.underline=false'
		'semanticHighlighting.deprecatedMember.strikethrough=true'
		'semanticHighlighting.enum.color=204,129,186'
		'semanticHighlighting.enum.enabled=true'
		'semanticHighlighting.enum.italic=true'
		'semanticHighlighting.field.color=102,225,248'
		'semanticHighlighting.field.enabled=true'
		'semanticHighlighting.inheritedField.color=143,143,191'
		'semanticHighlighting.inheritedMethodInvocation.color=205,246,104'
		'semanticHighlighting.inheritedMethodInvocation.enabled=true'
		'semanticHighlighting.interface.color=128,242,246'
		'semanticHighlighting.interface.enabled=true'
		'semanticHighlighting.localVariable.color=243,236,121'
		'semanticHighlighting.localVariable.enabled=true'
		'semanticHighlighting.localVariableDeclaration.color=242,242,0'
		'semanticHighlighting.localVariableDeclaration.enabled=true'
		'semanticHighlighting.localVariableDeclaration.bold=false'
		'semanticHighlighting.method.color=167,236,33'
		'semanticHighlighting.method.enabled=true'
		'semanticHighlighting.methodDeclarationName.color=30,181,64'
		'semanticHighlighting.methodDeclarationName.enabled=true'
		'semanticHighlighting.methodDeclarationName.bold=false'
		'semanticHighlighting.number.color=104,151,187'
		'semanticHighlighting.number.enabled=true'
		'semanticHighlighting.parameterVariable.color=121,171,255'
		'semanticHighlighting.parameterVariable.enabled=true'
		'semanticHighlighting.staticField.color=141,218,248'
		'semanticHighlighting.staticField.enabled=true'
		'semanticHighlighting.staticFinalField.color=141,218,248'
		'semanticHighlighting.staticFinalField.enabled=true'
		'semanticHighlighting.staticMethodInvocation.color=150,236,63'
		'semanticHighlighting.staticMethodInvocation.enabled=true'
		'semanticHighlighting.typeArgument.color=177,102,218'
		'semanticHighlighting.typeArgument.enabled=true'
		'semanticHighlighting.typeParameter.color=191,164,164'
		'semanticHighlighting.typeParameter.enabled=true'
		'semanticHighlighting.typeParameter.bold=false'
		'semanticHighlighting.restrictedKeywords.color=204,108,29'
		'semanticHighlighting.restrictedKeywords.bold=false'
		'sourceHoverBackgroundColor=68,68,68'
}


IEclipsePreferences#org-eclipse-ui-workbench:org-eclipse-jdt-ui { /* pseudo attribute added to allow contributions without replacing this node, see Bug 466075 */
	preferences:
		'org.eclipse.jdt.ui.ColoredLabels.inherited=143,143,191'
		'org.eclipse.jdt.ui.Javadoc.backgroundColor=52,57,61'
		'org.eclipse.jdt.ui.Javadoc.foregroundColor=238,238,238'
		'org.eclipse.jdt.ui.ColoredLabels.writeaccess_highlight=255,128,128'
}

BulletListBlock > StyledText {
    background-color: #3f4447;
    color: #BBBBBB;
}

FormatterPreferenceSectionComposite {
    background-color:#515658;
    color:#eeeeee;
    swt-titlebar-color: #cccccc;
}

#BreadcrumbComposite > Composite,
#BreadcrumbItemComposite,
#BreadcrumbItemDetailComposite,
#BreadcrumbItemDetailTextComposite,
#BreadcrumbItemDetailImageComposite,
#BreadcrumbItemDetailTextLabel,
#BreadcrumbItemDetailImageLabel,
#BreadcrumbItemDropDownToolBar
{
    /*
     * Bug 465666
     *
     * Note: as we can't change the arrow to black, we configure
     * the background with the lighter color used for the background
     * of toolbars and make the foreground color brighter too.
     */
    background-color:#515658;
    color: white;
}
