Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Cisco Config Highlight: ReduxNew to Visual Studio Code? Get it now.
Cisco Config Highlight: Redux

Cisco Config Highlight: Redux

Canti Firestarter

|
32 installs
| (0) | Free
Cisco device configuration Syntax Highlighting for Visual Studio Code.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

theme icon
Cisco Config Highlight: Redux

Cisco device configuration Syntax Highlighting for Visual Studio Code.

This is a Fork of Y-Ysss/vscode-cisco-config-highlight. No credit is taken from the original work. Implemented changes from the main repository of this extension are intended to improve on it and the only part credit is taken.

Introduction

I'm new at this, so there may be some inconsistencies in documentation as I make changes from main fork of this extension.

I also hope to make further improvement and functionality to the extension as a whole. To that extent, small patches will be issued but not indicated. Once a feature set is fully fleshed out, they will be noted to verison changes.

[!NOTE]
Changes (v0.6 → v0.7)

Version 0.7 includes significant improvements to syntax highlighting, enhanced keyword recognition with case-insensitive matching, and a new token color customization system.

Major Updates:

  • Modern tooling: ESLint v9, TypeScript v5.9, VS Code API v1.107.0+
  • Enhanced syntax patterns with case-insensitive matching
  • New semantic token color customization framework
  • Improved interface type and address pattern recognition
  • Comprehensive default color theme configuration
  • Better code organization and maintainability

For detailed changes, please refer to CHANGELOG.md

Features

This extension provides some awesome features for Cisco config text, including:

  • Syntax highlighting
  • Config outline (Experimental)

Installation

The extension for VS Code is available on the Visual Studio Marketplace:

  • Visual Studio Marketplace - Cisco Config Highlight: Redux

Supported Platforms

Syntaxes commonly used in configuration files are supported.

  • IOS

The following platforms provide similar syntax highlighting for constructs that overlap with IOS:

  • NXOS
  • IOS-XR
  • IOS-XE
  • ASA

[!NOTE] Cisco IOS syntax categorization is expansive in scope. For this reason, syntax coverage is a work in progress.

Screenshot

Note: Screenshots are using a custom theme (CantiFirestarter/Daybreak Asuna Theme). screenshot

Token Color Customizations

The extension automatically applies token colors on activation. Configure colors via extension settings or by editing settings.json directly. For best results with custom themes, see VS Code Color Themes.

Two ways to customize:

  1. Extension settings (recommended): Use cisco-config-highlight.colors.* keys—simple, fast, and syncs automatically.

[!NOTE] Not all tokens have been reviewed for color allotment.
Unreviewed tokens use interim value of white #ffffff.

  1. Manual textMateRules: Use editor.tokenColorCustomizations for advanced styling (bold, italic, underline) and fine-grained control.

Both methods work together; your textMateRules are preserved and can override extension colors when needed.

Quick Setup

  • Customize colors fast: set keys under cisco-config-highlight.colors.* (e.g. interface.ethernet, address.ipv4, keyword.vlan). These map to the scopes listed below.
  • Discover scopes: run “Developer: Inspect Editor Tokens and Scopes” and click a token in a Cisco file to copy its scope.
  • Fine-tune with theme rules: add editor.tokenColorCustomizations.textMateRules entries for foreground and fontStyle where needed. Your rules override defaults; extension-managed colors follow your settings.

Scope Hierarchy

Tokens follow a hierarchical structure, which allows you to abbreviate scopes when customizing them.

For example, consider the following two scopes:

  • entity.name.class.interface.ethernet
  • entity.name.class.interface.loopback

If you specify these scopes in full, the customization will apply only to those specific tokens.

However, if you use a higher-level scope such as:

  • entity.name.class.interface

The customization will apply to all tokens under that scope. The higher (shallower) the level in the hierarchy, the broader the range of tokens affected.

Configure via Extension Settings

In v0.7+, the extension reads cisco-config-highlight.colors.* settings and applyAllTokenRules to apply colors automatically on startup and when config changes.

Example settings.json:

    "cisco-config-highlight.applyAllTokenRules": true,
    "cisco-config-highlight.colors": {
        "interface.ethernet": "#328f16",
        "interface.loopback": "#33df33",
        "address.ipv4": "#2e74b5",
        "keyword.permit": "#9933ff",
        "keyword.deny": "#ff3333",
        "comment": "#339933"
    }
  • Defaults: applyAllTokenRules is enabled by default to load predefined colors.
  • Override: Set keys under colors.* to customize. These override defaults.
  • Real-time: Changes apply on save; or run "Cisco Config: Apply Token Colors" from the Command Palette.

Token Scopes List (Updated 2-21-26)

comment.block.banner
comment.line.config

constant.numeric.ipv4-AD
constant.numeric.ipv6-AD
constant.numeric.hex
constant.numeric.integer

constant.other.arp-insp-val.src-mac
constant.other.arp-insp-val.dst-mac
constant.other.arp-insp-val.ip

entity.name.class.interface.async
entity.name.class.interface.bri
entity.name.class.interface.bvi
entity.name.class.interface.app
entity.name.class.interface.cellular
entity.name.class.interface.dialer
entity.name.class.interface.ethernet
entity.name.class.interface.loopback
entity.name.class.interface.management
entity.name.class.interface.null
entity.name.class.interface.portchannel
entity.name.class.interface.serial
entity.name.class.interface.tunnel
entity.name.class.interface.virtual-template
entity.name.class.interface.vlan
entity.name.class.interface.wireless
entity.name.class.interface.atm
entity.name.class.interface.bdi
entity.name.class.interface.bundle-ether
entity.name.class.interface.dpt
entity.name.class.interface.embedded-service-engine
entity.name.class.interface.fibrechannel
entity.name.class.interface.group-async
entity.name.class.interface.lisp
entity.name.class.interface.lre
entity.name.class.interface.mfr
entity.name.class.interface.multilink
entity.name.class.interface.nve
entity.name.class.interface.pos
entity.name.class.interface.pseudowire
entity.name.class.interface.sdwan
entity.name.class.interface.service-engine
entity.name.class.interface.tokenring
entity.name.class.interface.vasi
entity.name.class.vrf.declaration

entity.name.tag.acl.access-class.name
entity.name.tag.acl.access-group.name
entity.name.tag.acl.access-list.name

entity.name.tag.bgp.neighbor-peer-group.name
entity.name.tag.bgp.as-number
entity.name.tag.bgp.address-family.afi
entity.name.tag.bgp.address-family.safi
entity.name.tag.bgp.peer-group.name
entity.name.tag.bgp.peer-policy.name
entity.name.tag.bgp.peer-session.name
entity.name.tag.bgp.remote-as-number
entity.name.tag.ospf.area-id
entity.name.tag.ospf.process-id

entity.name.tag.config-string.domain-name
entity.name.tag.config-string.hostname
entity.name.tag.config-string.logging-system-message
entity.name.tag.config-string.username
entity.name.tag.config-string.name

entity.name.tag.crypto.crypto-map.name
entity.name.tag.crypto.transform-set.name
entity.name.tag.crypto.ipsec-profile.name
entity.name.tag.crypto.isakmp-profile.name
entity.name.tag.crypto.keyring.name

entity.name.tag.group.qos.class-map.name
entity.name.tag.group.qos.class.name
entity.name.tag.group.security.object-group.name
entity.name.tag.group.qos.policy-map.name
entity.name.tag.group.resource.pool.name
entity.name.tag.group.resource.dhcp-server.name
entity.name.tag.group.routing.prefix-list.name
entity.name.tag.group.routing.route-map.name
entity.name.tag.group.qos.service-policy.name
entity.name.tag.group.resource.policy-list.name
entity.name.tag.group.traffic.traffic-filter.name
entity.name.tag.group.bgp.community.name

entity.name.tag.vrf.vrf-name
entity.other.vrf.definition
entity.other.vrf.forwarding

entity.name.tag.ip-sla.group-name
entity.name.tag.ip-sla.logging
entity.name.tag.ip-sla.monitor
entity.name.tag.ip-sla.monitor-schedule
entity.name.tag.ip-sla.reaction-configuration
entity.name.tag.ip-sla.responder
entity.name.tag.ip-sla.schedule
entity.name.tag.ip-sla.sla-id
entity.name.tag.ip-sla.track-id

keyword.other.acl.access-list.type
keyword.other.acl.access-class.type
keyword.other.acl.access-group.type
keyword.other.acl.protocol
keyword.other.acl.tcp-flag
keyword.other.acl.icmp-type
keyword.other.acl.option
keyword.other.acl.port-operator

keyword.other.address.cidr
keyword.other.address.ipv4.full
keyword.other.address.ipv6.condensed
keyword.other.address.ipv6.full
keyword.other.address.mac

keyword.other.config-keyword.add-remove.add
keyword.other.config-keyword.add-remove.except
keyword.other.config-keyword.add-remove.remove
keyword.other.config-keyword.allowed-native
keyword.other.config-keyword.any-all.all
keyword.other.config-keyword.any-all.any
keyword.other.config-keyword.in-out.in
keyword.other.config-keyword.in-out.out
keyword.other.config-keyword.input-output.input
keyword.other.config-keyword.input-output.output
keyword.other.config-keyword.inside-outside.inside
keyword.other.config-keyword.inside-outside.outside
keyword.other.config-keyword.match.all
keyword.other.config-keyword.match.any
keyword.other.config-keyword.permit-deny.deny
keyword.other.config-keyword.permit-deny.permit
keyword.other.config-keyword.shutdown
keyword.other.config-keyword.remark
keyword.other.config-keyword.network-protocols.security-aaa
keyword.other.config-keyword.network-protocols.wireless
keyword.other.config-keyword.network-protocols.ip-routing
keyword.other.config-keyword.network-protocols.system-logging
keyword.other.config-keyword.network-protocols.layer2
keyword.other.config-keyword.network-protocols.mgmt-interfaces
keyword.other.config-keyword.config-commands
keyword.other.config-keyword.operational-states
keyword.other.config-keyword.control-actions
keyword.other.config-keyword.advanced-options
keyword.other.config-keyword.ospf.command
keyword.other.config-keyword.ospf.option
keyword.other.config-keyword.routing-protocols
keyword.other.config-keyword.status.administratively-down
keyword.other.config-keyword.status.deleted
keyword.other.config-keyword.status.down
keyword.other.config-keyword.status.up
keyword.other.config-keyword.switchport-mode.access
keyword.other.config-keyword.switchport-mode.mode
keyword.other.config-keyword.switchport-mode.dynamic
keyword.other.config-keyword.switchport-mode.trunk
keyword.other.config-keyword.switchport-port-security.command
keyword.other.config-keyword.switchport-port-security.option
keyword.other.config-keyword.switchport-port-security.mac-address
keyword.other.config-keyword.switchport-port-security.sticky
keyword.other.config-keyword.switchport-port-security.violation
keyword.other.config-keyword.switchport-port-security.violation-action
keyword.other.config-keyword.switchport-port-security.aging-time
keyword.other.config-keyword.switchport-port-security.aging-type
keyword.other.config-keyword.switchport-port-security.aging-type-action
keyword.other.config-keyword.vlan
keyword.other.group.security.object-group.type

keyword.other.ip-sla.command
keyword.other.ip-sla.group-schedule
keyword.other.ip-sla.operation-type
keyword.other.ip-sla.option
keyword.other.ip-sla.reaction-option
keyword.other.ip-sla.reaction-threshold
keyword.other.ip-sla.reaction-type
keyword.other.ip-sla.responder-type
keyword.other.ip-sla.schedule-option
keyword.other.ip-sla.track
keyword.other.ip-sla.track-condition

meta.function-call.arp-insp-val
meta.function-call.command_hostname.config-if
meta.function-call.command_hostname.config-router
meta.function-call.command_hostname.config-line
meta.function-call.command_hostname.config
meta.function-call.command_hostname.privileged-mode
meta.function-call.command_hostname.user-mode
meta.function-call.command-disable.default
meta.function-call.command-disable.unused

punctuation.separator

string.other.description
string.other.password
string.other.remark
string.other.secret

Experimental Features

  • Show symbols in outline panel
  • Multilingual support (settings page)

Show symbols in outline panel

screenshot

Open the settings and enter a keyword in the search box. Select the check box to enable.

@ext:cantifirestarter.cisco-config-highlight-redux showSymbolsInOutlinePanel

Supported symbols

  • Command
    • hostname#{command name}
    • hostname>{command name}
  • Virtual Routing and Forwarding(VRF)
    • ip vrf {vrf-name}
  • Border Gateway Protocol(BGP)
    • router bgp {autonomous-system-number}
    • address-family ipv4 {unicast|multicast|vrf vrf-name }
  • Group
    • class-map {match-any|match-all} name
    • policy-map {name}
  • Interface
    • interface {type, slot, port, etc...}
    • e.g. interface GigabitEthernet0/0
  • Sub Interface
    • interface {type, slot, port, etc...}.{number}

Multilingual support

Currently, only the settings page is available.

Following supported languages:

  • English
  • Japanese

Notes

Highlighting in large files

If you want to enable highlighting in large files. Change the following settings to False.

"editor.largeFileOptimizations": false

However VSCode disable feature on large files for performance reasons, and forcing VSCode to syntax highlight large files may result in poor editor performance.

Recommended Extensions

I recommend the following extensions to more beautiful look.

  • Y-Ysss/Daybreak Theme
  • Jarvis Prestidge/Sublime Material Theme
  • CantiFirestarter/Daybreak Asuna Theme

Requests or Issues

If you have any requests or issues, please start an Issue or PullRequest on GitHub.

GitHub - CantiFirestarter/vscode-cisco-config-highlight-redux

License

MIT License Copyright (c) 2021 Original Y-Ysss
MIT License Copyright (c) 2026 Fork CantiFirestarter

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft