summaryrefslogtreecommitdiffstats
path: root/syntax/hcl.vim
diff options
context:
space:
mode:
authorAdam Stankiewicz <sheerun@sher.pl>2019-06-08 13:32:04 +0200
committerAdam Stankiewicz <sheerun@sher.pl>2019-06-08 13:32:04 +0200
commit8f2a71643a90a8aff03e69ba2b1f8fdb02cebdcf (patch)
treef35677b1c7636789fa6ffaa5aed4b7aa0e5b50d4 /syntax/hcl.vim
parentaf763ef221033974abf502ebce01a464baeca2c6 (diff)
downloadvim-polyglot-8f2a71643a90a8aff03e69ba2b1f8fdb02cebdcf.tar.gz
vim-polyglot-8f2a71643a90a8aff03e69ba2b1f8fdb02cebdcf.zip
Add hcl support, closes #403
Diffstat (limited to 'syntax/hcl.vim')
-rw-r--r--syntax/hcl.vim48
1 files changed, 48 insertions, 0 deletions
diff --git a/syntax/hcl.vim b/syntax/hcl.vim
new file mode 100644
index 00000000..30e83544
--- /dev/null
+++ b/syntax/hcl.vim
@@ -0,0 +1,48 @@
+if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'hcl') != -1
+ finish
+endif
+
+
+if exists("b:current_syntax")
+ finish
+endif
+
+syn match hclEqual '='
+syn match hclSimpleString '"[^\"]*"'
+syn region hclComment display oneline start='\%\(^\|\s\)#' end='$'
+syn region hclComment display oneline start='\%\(^\|\s\)//' end='$'
+syn region hclInterpolation display oneline start='(' end=')' contains=hclInterpolation,hclSimpleString
+syn region hclSmartString display oneline start='"' end='"\s*$' contains=hclInterpolation
+
+syn keyword hclRootKeywords variable provider resource nextgroup=hclString,hclString skipwhite
+syn keyword hclRootKeywords default nextgroup=hclEquals skipwhite
+
+
+syn keyword hclAwsResourcesKeywords availability_zones desired_capacity force_delete health_check_grace_period health_check_type launch_configuration load_balancers max_size min_size name vpc_zone_identifier nextgroup=hclEquals,hclString skipwhite
+syn keyword hclAwsResourcesKeywords allocated_storage availability_zone backup_retention_period backup_window db_subnet_group_name engine engine_version final_snapshot_identifier identifier instance_class iops maintenance_window multi_az name password port publicly_accessible security_group_names skip_final_snapshot username vpc_security_group_ids nextgroup=hclEquals,hclString skipwhite
+syn keyword hclAwsResourcesKeywords cidr description ingress name security_group_id security_group_name security_group_owner_id source_security_group_id nextgroup=hclEquals,hclString skipwhite
+syn keyword hclAwsResourcesKeywords description name subnet_ids nextgroup=hclEquals,hclString skipwhite
+syn keyword hclAwsResourcesKeywords instance vpc nextgroup=hclEquals,hclString skipwhite
+syn keyword hclAwsResourcesKeywords availability_zones health_check healthy_threshold instance_port instance_protocol instances internal interval lb_port lb_protocol listener name security_groups ssl_certificate_id subnets target timeout unhealthy_threshold nextgroup=hclEquals,hclString skipwhite
+syn keyword hclAwsResourcesKeywords ami associate_public_ip_address availability_zone ebs_optimized iam_instance_profile instance_type key_name private_ip security_groups source_dest_check subnet_id tags user_data nextgroup=hclEquals,hclString skipwhite
+syn keyword hclAwsResourcesKeywords vpc_id nextgroup=hclEquals,hclString skipwhite
+syn keyword hclAwsResourcesKeywords iam_instance_profile image_id instance_type key_name name name_prefix security_groups user_data nextgroup=hclEquals,hclString skipwhite
+syn keyword hclAwsResourcesKeywords name records ttl type zone_id nextgroup=hclEquals,hclString skipwhite
+syn keyword hclAwsResourcesKeywords name nextgroup=hclEquals,hclString skipwhite
+syn keyword hclAwsResourcesKeywords route_table_id subnet_id nextgroup=hclEquals,hclString skipwhite
+syn keyword hclAwsResourcesKeywords cidr_block gateway_id instance_id route vpc_id nextgroup=hclEquals,hclString skipwhite
+syn keyword hclAwsResourcesKeywords acl bucket nextgroup=hclEquals,hclString skipwhite
+syn keyword hclAwsResourcesKeywords cidr_blocks description from_port ingress name owner_id protocol security_groups self tags to_port vpc_id nextgroup=hclEquals,hclString skipwhite
+syn keyword hclAwsResourcesKeywords availability_zone- cidr_block map_public_ip_on_launch vpc_id nextgroup=hclEquals,hclString skipwhite
+syn keyword hclAwsResourcesKeywords cidr_block enable_dns_hostnames enable_dns_support tags nextgroup=hclEquals,hclString skipwhite
+
+
+hi def link hclComment Comment
+hi def link hclEqual Operator
+hi def link hclRootKeywords Statement
+hi def link hclAwsResourcesKeywords Type
+hi def link hclSmartString String
+hi def link hclInterpolation String
+hi def link hclSimpleString PreProc
+
+let b:current_syntax = "hcl"