use aceMode or codemirrorMode to determine programming language

This commit is contained in:
Sebastian Sdorra
2020-01-23 16:26:13 +01:00
parent fe8e4db10b
commit 09bde1e3bb
6 changed files with 59 additions and 8 deletions

View File

@@ -122,7 +122,9 @@ public class ContentResource {
private void appendContentHeader(String path, byte[] head, Response.ResponseBuilder responseBuilder) {
ContentType contentType = ContentTypes.detect(path, head);
responseBuilder.header("Content-Type", contentType.getRaw());
contentType.getLanguage().ifPresent(language -> responseBuilder.header("X-Programming-Language", language));
contentType.getLanguage().ifPresent(
language -> responseBuilder.header(ProgrammingLanguages.HEADER, ProgrammingLanguages.getValue(language))
);
}
private byte[] getHead(String revision, String path, RepositoryService repositoryService) throws IOException {

View File

@@ -65,7 +65,7 @@ final class DiffResultToDiffResultDtoMapper {
Optional<Language> language = ContentTypes.detect(path).getLanguage();
language.ifPresent(value -> dto.setLanguage(value.getName()));
language.ifPresent(value -> dto.setLanguage(ProgrammingLanguages.getValue(value)));
List<DiffResultDto.HunkDto> hunks = new ArrayList<>();
for (Hunk hunk : file) {

View File

@@ -0,0 +1,24 @@
package sonia.scm.api.v2.resources;
import com.github.sdorra.spotter.Language;
import java.util.Optional;
final class ProgrammingLanguages {
static final String HEADER = "X-Programming-Language";
private static final String DEFAULT = "text";
private ProgrammingLanguages() {
}
static String getValue(Language language) {
Optional<String> aceMode = language.getAceMode();
if (!aceMode.isPresent()) {
Optional<String> codemirrorMode = language.getCodemirrorMode();
return codemirrorMode.orElse(DEFAULT);
}
return aceMode.get();
}
}