private W checkoutWriter(String filename, String namespace) {
        String formattedFilename = Paths.get(filename).normalize().toString();
        boolean needsNewline = writers.containsKey(formattedFilename);

        W writer = writers.computeIfAbsent(formattedFilename, file -> {
            W result = factory.apply(file, namespace);
            interceptors.forEach(result::onSection);
            return result;
        });

        // Add newlines/separators between types in the same file.
        if (needsNewline) {
            writer.writeInline(automaticSeparator);
        }

        return writer;
    }
Sets the automatic separator that is written to a {@code SymbolWriter}
each time the writer is reused.

<p>The default line separator is a newline ("\n"), but some
implementations may wish to use an alternative value (e.g., "\r\n") or
to disable the newline separator altogether by proving an empty string.

@param automaticSeparator The non-null line separator to use.
smithy-codegen-core/src/main/java/software/amazon/smithy/codegen/core/WriterDelegator.java