Skip to content

Commit b2fae03

Browse files
committed
fix failing tests for markdown detection
1 parent 03a0165 commit b2fae03

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed

src/extension/prompt/common/codeGuesser.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,16 @@ function guessLineType(line: string): GuessedLineType {
3737
return GuessedLineType.Code;
3838
}
3939

40+
// If the line starts with a '#' followed by a space, it's possibly markdown header
41+
// A popular exception is if the line contains C/C++ preprocessor directives
42+
if (line.match(/^#+ .+$/)) {
43+
const commonCppDirectives = ['# include', '# define', '# ifdef', '# ifndef', '# endif', '# pragma', '# if', '# else', '# elif', '# undef', '# error', '# line', '# warning'];
44+
// If line does not contain any # directives used in C, C++.
45+
if (!commonCppDirectives.some(directive => line.trim().startsWith(directive))) {
46+
return GuessedLineType.NaturalLanguage;
47+
}
48+
}
49+
4050
// Natural Language Hints
4151
{
4252
// if the first character is upper-case

src/extension/prompt/node/test/codeGuesser.spec.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,22 +79,27 @@ suite('codeGuesser', () => {
7979
assert.strictEqual(looksLikeCode(xmlSnippet), true);
8080
});
8181

82-
test.skip('looksLikeCode - detects YAML as code', () => {
82+
test('looksLikeCode - detects YAML as code', () => {
8383
const yamlSnippet = 'key: value';
8484
assert.strictEqual(looksLikeCode(yamlSnippet), true);
8585
});
8686

87-
test.skip('looksLikeCode - detects Markdown as non-code', () => {
87+
test('looksLikeCode - detects Markdown as non-code', () => {
8888
const markdownSnippet = '# This is a heading';
8989
assert.strictEqual(looksLikeCode(markdownSnippet), false);
9090
});
9191

92+
test('looksLikeCode - detects C++ preprocessor directive as code', () => {
93+
const cppPreprocessorSnippet = '# include <iostream>';
94+
assert.strictEqual(looksLikeCode(cppPreprocessorSnippet), true);
95+
});
96+
9297
test('looksLikeCode - detects plain text as non-code', () => {
9398
const plainTextSnippet = 'Just some plain text.';
9499
assert.strictEqual(looksLikeCode(plainTextSnippet), false);
95100
});
96101

97-
test.skip('looksLikeCode - detects shell script as code', () => {
102+
test('looksLikeCode - detects shell script as code', () => {
98103
const shellSnippet = 'echo "Hello World"';
99104
assert.strictEqual(looksLikeCode(shellSnippet), true);
100105
});

0 commit comments

Comments
 (0)