[Code] use a lang header for file lang type instead of content-type (#39556)

This commit is contained in:
Yulong 2019-06-26 09:15:37 +08:00 committed by GitHub
parent 26d7e9b9be
commit 00fc13e583
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 4 deletions

View file

@ -61,7 +61,7 @@ export class TextModelResolverService implements ITextModelService {
const contentType = response.headers.get('Content-Type');
if (contentType && contentType.startsWith('text/')) {
const lang = contentType.split(';')[0].substring('text/'.length);
const lang = response.headers.get('lang');
const text = await response.text();
return { text, lang };
}

View file

@ -199,7 +199,7 @@ export async function requestFile(
const contentType = response.headers.get('Content-Type');
if (contentType && contentType.startsWith('text/')) {
const lang = contentType.split(';')[0].substring('text/'.length);
const lang = response.headers.get('lang') || undefined;
if (lang === 'big') {
return {
payload,

View file

@ -100,10 +100,16 @@ export function fileRoute(server: CodeServerRouter, gitOps: GitOperations) {
}
const lines = extractLines(blob.content(), fromLine, toLine);
const lang = await detectLanguage(path, lines);
return h.response(lines).type(`text/${lang || 'plain'}`);
return h
.response(lines)
.type(`text/plain`)
.header('lang', lang);
} else if (blob.content().length <= TEXT_FILE_LIMIT) {
const lang = await detectLanguage(path, blob.content());
return h.response(blob.content()).type(`text/${lang || 'plain'}`);
return h
.response(blob.content())
.type(`text/plain'`)
.header('lang', lang);
} else {
return h.response('').type(`text/big`);
}