ErlangRecordExpression recordExpression = PsiTreeUtil.getParentOfType(element, ErlangRecordExpression.class);
if (recordExpression != null) {
PsiReference reference = recordExpression.getReferenceInternal();
PsiElement resolve = reference != null ? reference.resolve() : null;
if (resolve != null) {
ErlangTypedRecordFields fields = ((ErlangRecordDefinition) resolve).getTypedRecordFields();
if (fields != null) {
String replace = fields.getText().replaceFirst("\\{", "").replace("}", "");
boolean empty = StringUtil.isEmptyOrSpaces(replace);
String newFields = replace + (empty ? "" : " ,") + element.getText();
PsiElement recordFieldsFromText = ErlangElementFactory.createRecordFieldsFromText(project, newFields);
fields.replace(recordFieldsFromText);
}
}
}
}