Compare commits

...

1 Commits

Author SHA1 Message Date
Vitaliy Salnikov a633429370 Update Swift template to escape some language keywords 2019-10-30 20:34:51 +03:00
8 changed files with 36 additions and 16 deletions

View File

@ -6,7 +6,7 @@
{% for value in values -%}
/// - {{ utils.decapitalize(value.name) }}: {{ value.description }}
{% endfor -%}
enum {{ name }}: {{ enumutils.enumType(valuesTypes) }}, Codable, RawRepresentable, CaseIterable {
enum {{ utils.escapeIfNeeded(name) }}: {{ enumutils.enumType(valuesTypes) }}, Codable, RawRepresentable, CaseIterable {
{% include 'blocks/enum/cases.twig' with { values: values } %}
}
{{ "\n" }}

View File

@ -1,7 +1,9 @@
{%- import '../../macroses/common.utils.twig' as utils -%}
{% if fields is not empty %}
private enum CodingKeys: String, CodingKey {
{% for field in fields %}
case {{ field.name }}{% if field.name != field.jsonName %} = "{{- field.jsonName -}}"{% endif %}
case {{ utils.escapeIfNeeded(field.name) }}{% if field.name != field.jsonName %} = "{{- field.jsonName -}}"{% endif %}
{%- endfor %}
}
{% endif %}

View File

@ -1,4 +1,5 @@
{%- import '../../macroses/common.utils.twig' as utils -%}
{%- for field in fields %}
self.{{ field.name }} = {{ field.name }}
{%- for field in fields %}
self.{{ field.name }} = {{ utils.escapeIfNeeded(field.name) }}
{%- endfor -%}

View File

@ -1,3 +1,5 @@
{%- for field in fields -%}
{{ field.name }}: {{ field.name }}{%- if not (loop.last) %}, {% endif %}
{%- import '../../macroses/common.utils.twig' as utils -%}
{%- for field in fields -%}
{{ field.name }}: {{ utils.escapeIfNeeded(field.name) }}{%- if not (loop.last) %}, {% endif %}
{%- endfor -%}

View File

@ -4,6 +4,6 @@
// MARK: - Fields
{% for field in fields %}
/// {{ field.description }}
let {{ field.name }}: {{ utils.formatNullableOrOptional(utils.formatValueType(field.type.type), field.nullable, field.optional) }}
let {{ utils.escapeIfNeeded(field.name) }}: {{ utils.formatNullableOrOptional(utils.formatValueType(field.type.type), field.nullable, field.optional) }}
{% endfor -%}
{% endif %}

View File

@ -1,12 +1,13 @@
{%- import '../../macroses/common.utils.twig' as utils -%}
{%- for value in values -%}
{%- set enumValueName = utils.escapeIfNeeded(utils.enumValueName(value)) -%}
{%- if valuesTypes == "STRING" %}
{%- if value.name != value.value %}
case {{ utils.escapeIfNeeded(utils.enumValueName(value)) }} = "{{ value.value }}"
case {{ enumValueName }} = "{{ value.value }}"
{%- else %}
case {{ utils.escapeIfNeeded(utils.enumValueName(value)) -}}
case {{ enumValueName -}}
{% endif -%}
{%- else %}
case {{ utils.escapeIfNeeded(utils.enumValueName(value)) }} = {{ value.value }}
case {{ enumValueName }} = {{ value.value }}
{%- endif -%}
{%- endfor -%}

View File

@ -12,15 +12,17 @@
{% macro classType(type) %}
{%- import _self as self -%}
{%- import '../macroses/common.utils.twig' as utils -%}
{{- type.baseTypeName -}}{{- self.typeParameters(type.typeParameters, true) -}}
{{- utils.escapeIfNeeded(type.baseTypeName) -}}{{- self.typeParameters(type.typeParameters, true) -}}
{% endmacro %}
{% macro parentClassType(parent, parentTypeParameters) %}
{%- import _self as self -%}
{%- import '../macroses/common.utils.twig' as utils -%}
{%- if parent is not null %}
{{- parent.type.baseTypeName -}}
{{- utils.escapeIfNeeded(parent.type.baseTypeName) -}}
{%- else -%}
Codable
{%- endif -%}

View File

@ -7,7 +7,9 @@
{% endmacro %}
{% macro formatNullableOrOptional(expr, nullable, optional) %}
{{- expr -}}{%- if nullable or optional -%}?{%- endif -%}
{%- import _self as self -%}
{{- self.escapeIfNeeded(expr) -}}{%- if nullable or optional -%}?{%- endif -%}
{% endmacro %}
{% macro formatValueType(valueType) %}
@ -28,7 +30,7 @@
{%- elseif valueType.baseTypeName == "Color" -%}
UIColor
{%- else -%}
{{ valueType.baseTypeName }}
{{ self.escapeIfNeeded(valueType.typeName) }}
{%- endif -%}
{% endmacro %}
@ -56,7 +58,7 @@
{%- import _self as self -%}
{%- if isStrongLinkCaptured -%}
{{ field.name }}
{{ self.escapeIfNeeded(field.name) }}
{%- else -%}
{{ self.formatNullableOrOptional(field.name, field.nullable, field.optional) -}}
{%- endif -%}
@ -128,7 +130,17 @@
{%- endmacro %}
{% macro escapeIfNeeded(expr) %}
{%- if expr == "default" or expr == "operator" -%}
{%- set escapedIdentifiers =
[
"func",
"class",
"default",
"operator",
"true",
"false"
]
-%}
{%- if expr in escapedIdentifiers -%}
`{{ expr }}`
{%- else -%}
{{ expr }}