diff --git a/src/main/kotlin/de/idetools/filename_template/InitializeFilenameTemplateActivity.kt b/src/main/kotlin/de/idetools/filename_template/InitializeFilenameTemplateActivity.kt index 1072885..e092f5f 100644 --- a/src/main/kotlin/de/idetools/filename_template/InitializeFilenameTemplateActivity.kt +++ b/src/main/kotlin/de/idetools/filename_template/InitializeFilenameTemplateActivity.kt @@ -6,6 +6,7 @@ import com.intellij.openapi.actionSystem.Constraints import com.intellij.openapi.actionSystem.DefaultActionGroup import com.intellij.openapi.project.Project import com.intellij.openapi.startup.StartupActivity +import de.idetools.filename_template.placeholders.DatePlaceholder import de.idetools.filename_template.placeholders.DefaultPlaceholder import de.idetools.filename_template.placeholders.EpochPlaceholder import de.idetools.filename_template.placeholders.PlaceholderProcessor @@ -21,6 +22,7 @@ class InitializeFilenameTemplateActivity : StartupActivity { val placeholders = listOf( EpochPlaceholder(), + DatePlaceholder(), DefaultPlaceholder() ) diff --git a/src/main/kotlin/de/idetools/filename_template/placeholders/DatePlaceholder.kt b/src/main/kotlin/de/idetools/filename_template/placeholders/DatePlaceholder.kt new file mode 100644 index 0000000..9c36484 --- /dev/null +++ b/src/main/kotlin/de/idetools/filename_template/placeholders/DatePlaceholder.kt @@ -0,0 +1,20 @@ +package de.idetools.filename_template.placeholders + +import java.time.LocalDateTime +import java.time.format.DateTimeFormatter + +class DatePlaceholder : Placeholder { + override fun supports(placeholder: String): Boolean = placeholder.startsWith("DATE") + + override fun process(placeholder: String, context: PlaceholderContext): String { + val date = LocalDateTime.now() + val datePattern = placeholder.substringAfter(":", "") + val formatter = + if (datePattern.isBlank()) { + DateTimeFormatter.ISO_DATE + } else { + DateTimeFormatter.ofPattern(datePattern) + } + return date.format(formatter) + } +} diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml index d9fdc38..5c8a3f0 100644 --- a/src/main/resources/META-INF/plugin.xml +++ b/src/main/resources/META-INF/plugin.xml @@ -35,6 +35,12 @@

A template might contain following place holders:

+
{DATE:FORMAT}
+
+ The formatted date. If the format is omitted "yyyy-MM-dd" is used by default.
+ See the java documentation for supported patterns: Patterns for Formatting and Parsing +
+
{EPOCH}
The current unix time stamp: Seconds since the Unix Epoch on January 1st, 1970 at UTC.