Skip to content

code formatting within a heredoc script #1066

Open
@digitalsignalperson

Description

@digitalsignalperson

What is the problem this feature will solve?

I often have bash scripts with lots of heredocs. It's very convenient to consolidate many scripts and code snippets into one bash script. However, the lack of formatting within the heredocs makes it harder to spot mistakes if editing for example, a bash script within a heredoc.

What is the feature you are proposing to solve the problem?

Having code formatting in the individual heredoc sections, provided a shebang exists to indicate the language.

#!/bin/bash

echo "code is formatted here"

cat > /my/path << 'EOF'
#!/bin/bash

echo "code is also formatted here"
var="oops forgot a closing double quotes, help!

EOF

cat > /my/path2 << EOF
#!/bin/python

print("it would be cool if this could be formatted too in whatever language the shebang corresponds to")
EOF

cat > /my/path3 << EOF
This is not formatted
EOF


The only way formatting should work is if a shebang was provided, otherwise the heredoc could be for any purpose.

It would be really cool if this worked for any language in the heredoc's shebang, but I could imagine that being trickier. This feels similar to what markdown formatting is like:

# This is markdown

```bash
echo "bash code formatted in markdown codeblock. similar idea to a heredoc"
```

```python
print('python formatting in this code block in markdown)
```


What alternatives have you considered?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions