Full path to a plugin file.
The name of the plugin, based on its filename.
{ version(Posix) enum filename = "plugins/oneliners.d"; else /*version(Windows)*/ enum filename = "plugins\\oneliners.d"; immutable expected = "oneliners"; immutable actual = pluginNameOfFilename(filename); assert((expected == actual), actual); } { version(Posix) enum filename = "plugins/twitch/base.d"; else /*version(Windows)*/ enum filename = "plugins\\twitch\\base.d"; immutable expected = "twitch"; immutable actual = pluginNameOfFilename(filename); assert((expected == actual), actual); } { version(Posix) enum filename = "plugins/counters.d"; else /*version(Windows)*/ enum filename = "plugins\\counters.d"; immutable expected = "counters"; immutable actual = pluginNameOfFilename(filename); assert((expected == actual), actual); }
Returns the name of a plugin based on its filename.
This is preferred over slicing std.path.baseName because some plugins are nested in their own directories. The basename of plugins/twitch/base.d is base.d, much like that of plugins/printer/base.d is.
With this we get twitch and printer instead, while still getting oneliners.