diff --git a/cisco-ios.sublime-syntax b/cisco-ios.sublime-syntax index a244d74..d6ab99c 100644 --- a/cisco-ios.sublime-syntax +++ b/cisco-ios.sublime-syntax @@ -1148,6 +1148,10 @@ variables: (?:po)| (?:serial)| (?:se)| + (?:TwentyFiveGigabitEthernet)| + (?:Twe)| + (?:TwoGigabitEthernet)| + (?:Tw)| (?:TenGigabitEthernet)| (?:Te)| (?:tunnel)| @@ -4073,7 +4077,11 @@ contexts: - include: interface_ipv6_link_local - include: ip_dhcp_snooping - include: storm_control + - include: interface_speed - include: interface_snmp + - include: interface_service_policy + - include: interface_trust_device + - include: interface_auto_qos - match: | (?xi) ^\s* @@ -4098,7 +4106,6 @@ contexts: (?:on) ) )| - (?:(speed)\s+(auto)|(\d+))| (?:(ip\s+nat)\s+((?:inside)|(?:outside)))| (?:(duplex)\s+((?:auto)|(?:half)|(?:auto)))| (?: @@ -4195,54 +4202,118 @@ contexts: 30: constant.numeric # channel-group id 31: support.constant # channel-group mode 32: support.constant # channel-group mode active - 33: support.constant # speed - 34: support.constant # speed auto - 35: constant.numeric # speed # - 36: support.constant # ip nat - 37: support.constant # ip nat inside / outside - 38: support.constant # duplex - 39: support.constant # duplex auto / full / half - 40: support.constant # ip - 41: support.constant # ip flow ingress - 42: support.constant # ip igmp query-interval - 43: constant.numeric # ip igmp query-interval value - 44: support.constant # mtu - 45: constant.numeric # mtu value - 46: support.constant # bandwidth - 47: constant.numeric # bandwidth value - 48: support.constant # speed - 49: constant.numeric # speed value - 50: support.constant # full-duplex - 51: support.constant # half-duplex - 52: support.constant # ip pim - 53: entity.other.attribute-name # ip pim mode - 54: support.constant # ip ospf - 55: support.constant # ip ospf message-digest-key - 56: constant.numeric # ip ospf message-digest-key id - 57: entity.other.attribute-name # ip ospf message-digest-key hash - 58: constant.numeric # ip ospf message-digest-key password type 7 - 59: string.unquoted.cisco.password.type.7 # ip ospf message-digest-key 7 password - 60: constant.numeric # ip ospf message-digest-key password type - 61: string.unquoted # ip ospf message-digest-key password - 62: support.constant # ip ospf cost - 63: constant.numeric # ip ospf cost value - 64: support.constant # spanning-tree - 65: support.constant # spanning-tree portfast - 66: support.constant # spanning-tree portfast edge - 67: support.constant # spanning-tree bpduguard - 68: entity.other.attribute-name # spanning-tree bpduguard enable - 69: keyword.other # spanning-tree bpduguard disable - 70: support.constant # service-policy - 71: support.constant # service-policy input/output - 72: string.unquoted # service-policy input/output name - 73: support.constant # logging event - 74: support.constant # logging event link-status - 75: support.constant # logging event trunk-status - 76: support.constant # vpc - 77: constant.numeric # vpc id + 33: support.constant # ip nat + 34: support.constant # ip nat inside / outside + 35: support.constant # duplex + 36: support.constant # duplex auto / full / half + 37: support.constant # ip + 38: support.constant # ip flow ingress + 39: support.constant # ip igmp query-interval + 40: constant.numeric # ip igmp query-interval value + 41: support.constant # mtu + 42: constant.numeric # mtu value + 43: support.constant # bandwidth + 44: constant.numeric # bandwidth value + 45: support.constant # speed + 46: constant.numeric # speed value + 47: support.constant # full-duplex + 48: support.constant # half-duplex + 49: support.constant # ip pim + 50: entity.other.attribute-name # ip pim mode + 51: support.constant # ip ospf + 52: support.constant # ip ospf message-digest-key + 53: constant.numeric # ip ospf message-digest-key id + 54: entity.other.attribute-name # ip ospf message-digest-key hash + 55: constant.numeric # ip ospf message-digest-key password type 7 + 56: string.unquoted.cisco.password.type.7 # ip ospf message-digest-key 7 password + 57: constant.numeric # ip ospf message-digest-key password type + 58: string.unquoted # ip ospf message-digest-key password + 59: support.constant # ip ospf cost + 60: constant.numeric # ip ospf cost value + 61: support.constant # spanning-tree + 62: support.constant # spanning-tree portfast + 63: support.constant # spanning-tree portfast edge + 64: support.constant # spanning-tree bpduguard + 65: entity.other.attribute-name # spanning-tree bpduguard enable + 66: keyword.other # spanning-tree bpduguard disable + 67: support.constant # service-policy + 68: support.constant # service-policy input/output + 69: string.unquoted # service-policy input/output name + 70: support.constant # logging event + 71: support.constant # logging event link-status + 72: support.constant # logging event trunk-status + 73: support.constant # vpc + 74: constant.numeric # vpc id - include: pop_on_configure_terminal_context # - include: partials + interface_speed: + - match: | + (?xi) + ^\s*(speed)\s+ + (?: + (10{1,3})| + (?: + (auto) + ( + (?:\s+10(?!\d))? + (?:\s+100(?!\d))? + (?:\s+1000(?!\d))? + )? + )| + (nonegotiate) + ) + captures: + 1: support.constant + 2: constant.numeric + 3: constant.language + 4: support.constant + 5: constant.language + + interface_trust_device: + - match: | + (?xi) + ^\s*(trust\s+device)\s+ + ( + (?:cisco-phone)| + (?:cts)| + (?:ip-camera)| + (?:media-player) + ) + captures: + 1: support.constant + 2: constant.language + + interface_service_policy: + - match: | + (?xi) + ^\s*(service-policy)\s+ + ( + (?:input)| + (?:output) + )\s+ + (\S+) + captures: + 1: support.constant + 2: support.constant + 3: string.unquoted + + interface_auto_qos: + - include: interface_auto_qos_voip + + interface_auto_qos_voip: + - match: | + (?xi) + ^\s*(auto\s+qos\s+voip)\s+ + ( + (?:cisco-phone)| + (?:cisco-softphone)| + (?:trust) + ) + captures: + 1: support.constant + 2: constant.language + interface_ipv6_link_local: - match: | (?xi) diff --git a/cisco/ios/ios.interface.sublime-completions b/cisco/ios/ios.interface.sublime-completions index 5f24300..87214f9 100644 --- a/cisco/ios/ios.interface.sublime-completions +++ b/cisco/ios/ios.interface.sublime-completions @@ -144,6 +144,54 @@ "trigger": "snmp trap\tif-monitor", "contents": "snmp trap if-monitor" }, + { + "trigger": "service-policy\tinput", + "contents": "service-policy input ${1:name}" + }, + { + "trigger": "service-policy\toutput", + "contents": "service-policy output ${1:name}" + }, + { + "trigger": "speed\t1000", + "contents": "speed ${1:1000}" + }, + { + "trigger": "speed\tauto", + "contents": "speed auto ${1:1000}" + }, + { + "trigger": "speed\tnonegotiate", + "contents": "speed nonegotiate" + }, + { + "trigger": "trustdevice\tcisco-phone", + "contents": "trust device cisco-phone" + }, + { + "trigger": "trustdevice\tcts", + "contents": "trust device cts" + }, + { + "trigger": "trustdevice\tip-camera", + "contents": "trust device ip-camera" + }, + { + "trigger": "trustdevice\tmedia-player", + "contents": "trust device media-player" + }, + { + "trigger": "autoqosvoip\tcisco-phone", + "contents": "auto qos voip cisco-phone" + }, + { + "trigger": "autoqosvoip\tcisco-softphone", + "contents": "auto qos voip cisco-softphone" + }, + { + "trigger": "autoqosvoip\ttrust", + "contents": "auto qos voip trust" + }, ] } diff --git a/messages.json b/messages.json index e927ae8..2dc90fe 100644 --- a/messages.json +++ b/messages.json @@ -52,5 +52,7 @@ "2.45.0": "messages/2.45.0.md", "2.46.0": "messages/2.46.0.md", "2.47.0": "messages/2.47.0.md", - "2.48.0": "messages/2.48.0.md" + "2.48.0": "messages/2.48.0.md", + "2.49.0": "messages/2.49.0.md", + "2.50.0": "messages/2.50.0.md" } \ No newline at end of file diff --git a/messages/2.49.0.md b/messages/2.49.0.md new file mode 100644 index 0000000..127f64b --- /dev/null +++ b/messages/2.49.0.md @@ -0,0 +1,17 @@ +# [2.49.0] - 2021.04.07 + +* Cisco IOS Syntax + + * Interface + + * speed auto 10 100 1000 + + * TwoGigabitEthernet [#24](https://github.com/heyglen/network_tech/issues/24) + + * TwentyFiveGigabitEthernet [#24](https://github.com/heyglen/network_tech/issues/24) + + * trust device [#24](https://github.com/heyglen/network_tech/issues/24) + + * auto qos voip [#24](https://github.com/heyglen/network_tech/issues/24) + + * service-policy [#24](https://github.com/heyglen/network_tech/issues/24) diff --git a/messages/2.50.0.md b/messages/2.50.0.md new file mode 100644 index 0000000..d2b7ca8 --- /dev/null +++ b/messages/2.50.0.md @@ -0,0 +1,2 @@ +# [2.50.0] - 2021.04.07 + diff --git a/tests/syntax_test_cisco_ios.cisco-ios b/tests/syntax_test_cisco_ios.cisco-ios index 3c186df..c4285a5 100644 --- a/tests/syntax_test_cisco_ios.cisco-ios +++ b/tests/syntax_test_cisco_ios.cisco-ios @@ -478,12 +478,23 @@ interface TwoGigabitEthernet1/0/1 switchport access vlan 1000 switchport mode access switchport voice vlan 3000 - speed auto 100 1000 + speed auto + speed auto 10 100 1000 + speed 10 + speed 100 + speed 1000 + speed nonegotiate trust device cisco-phone + trust device cts + trust device ip-camera + trust device media-player auto qos voip cisco-phone + auto qos voip cisco-softphone + auto qos voip trust spanning-tree portfast - service-policy input AutoQos-4.0-CiscoPhone-Input-Policy - service-policy output AutoQos-4.0-Output-Policy + service-policy input name + service-policy output name + interface range GigabitEthernet0 exit