mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-10 08:38:32 +02:00
Allow custom extensions when editing (for easier syntax highlighting) (#1139)
* Create tests and steps for temporary filename suffix * Have temporary filename suffix be -{template_filename} or .jrnl * Finalize extension_editor_file * Make suffix local variable in get_text_from_editor
This commit is contained in:
parent
c47c1e209e
commit
e9fd5cdc0e
5 changed files with 42 additions and 1 deletions
18
features/data/configs/editor_markdown_extension.yaml
Normal file
18
features/data/configs/editor_markdown_extension.yaml
Normal file
|
@ -0,0 +1,18 @@
|
|||
default_hour: 9
|
||||
default_minute: 0
|
||||
editor: ""
|
||||
encrypt: false
|
||||
highlight: true
|
||||
editor: "vim"
|
||||
journals:
|
||||
default: features/journals/editor_markdown_extension.journal
|
||||
linewrap: 80
|
||||
tagsymbols: "@"
|
||||
template: features/templates/extension.md
|
||||
timeformat: "%Y-%m-%d %H:%M"
|
||||
indent_character: "|"
|
||||
colors:
|
||||
date: none
|
||||
title: none
|
||||
body: none
|
||||
tags: none
|
0
features/data/templates/extension.md
Normal file
0
features/data/templates/extension.md
Normal file
|
@ -44,3 +44,13 @@ Feature: Journals iteracting with the file system in a way that users can see
|
|||
And we change directory to "features"
|
||||
And we run "jrnl -n 1"
|
||||
Then the output should contain "hello world"
|
||||
|
||||
Scenario: the temporary filename suffix should default to ".jrnl"
|
||||
Given we use the config "editor.yaml"
|
||||
When we run "jrnl --edit"
|
||||
Then the temporary filename suffix should be ".jrnl"
|
||||
|
||||
Scenario: the temporary filename suffix should be "-{template_filename}"
|
||||
Given we use the config "editor_markdown_extension.yaml"
|
||||
When we run "jrnl --edit"
|
||||
Then the temporary filename suffix should be "-extension.md"
|
||||
|
|
|
@ -248,6 +248,14 @@ def contains_editor_file(context, method, text=""):
|
|||
assert False, f"Method '{method}' not supported"
|
||||
|
||||
|
||||
@then('the temporary filename suffix should be "{suffix}"')
|
||||
def extension_editor_file(context, suffix):
|
||||
filename = Path(context.editor_file["name"]).name
|
||||
delimiter = "-" if "-" in filename else "."
|
||||
filename_suffix = delimiter + filename.split(delimiter)[-1]
|
||||
assert filename_suffix == suffix
|
||||
|
||||
|
||||
def _mock_getpass(inputs):
|
||||
def prompt_return(prompt=""):
|
||||
if type(inputs) == str:
|
||||
|
|
|
@ -5,6 +5,7 @@ import subprocess
|
|||
import sys
|
||||
import tempfile
|
||||
import textwrap
|
||||
from pathlib import Path
|
||||
|
||||
from .color import ERROR_COLOR
|
||||
from .color import RESET_COLOR
|
||||
|
@ -12,7 +13,11 @@ from .os_compat import on_windows
|
|||
|
||||
|
||||
def get_text_from_editor(config, template=""):
|
||||
filehandle, tmpfile = tempfile.mkstemp(prefix="jrnl", text=True, suffix=".txt")
|
||||
suffix = ".jrnl"
|
||||
if config["template"]:
|
||||
template_filename = Path(config["template"]).name
|
||||
suffix = "-" + template_filename
|
||||
filehandle, tmpfile = tempfile.mkstemp(prefix="jrnl", text=True, suffix=suffix)
|
||||
os.close(filehandle)
|
||||
|
||||
with open(tmpfile, "w", encoding="utf-8") as f:
|
||||
|
|
Loading…
Add table
Reference in a new issue