Skip to content

Commit

Permalink
Merge pull request #277 from evidolob/fix-string-array-completion
Browse files Browse the repository at this point in the history
Insert empty string instead of 'null' for string array completion
  • Loading branch information
JPinkney authored Jul 14, 2020
2 parents fec7128 + e8e748f commit 3cdc18b
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/languageservice/services/yamlCompletion.ts
Original file line number Diff line number Diff line change
Expand Up @@ -652,7 +652,7 @@ export class YAMLCompletion extends JSONCompletion {
insertText = `\${${insertIndex++}:0}`;
break;
case 'string':
insertText = `\${${insertIndex++}:null}`;
insertText = `\${${insertIndex++}:""}`;
break;
case 'object':
const objectInsertResult = this.getInsertTextForObject(schema, separatorAfter, `${indent}\t`, insertIndex++);
Expand Down
51 changes: 51 additions & 0 deletions test/autoCompletion6.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Red Hat. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/

import { TextDocument } from 'vscode-languageserver';
import { getLanguageService } from '../src/languageservice/yamlLanguageService';
import { toFsPath, schemaRequestService, workspaceContext } from './utils/testHelper';
import assert = require('assert');
import path = require('path');

const languageService = getLanguageService(schemaRequestService, workspaceContext, [], null);

const languageSettings = {
schemas: [],
completion: true
};

const uri = toFsPath(path.join(__dirname, './fixtures/testStringArray.json'));
const fileMatch = ['*.yml', '*.yaml'];
languageSettings.schemas.push({ uri, fileMatch: fileMatch });
languageService.configure(languageSettings);

suite('Auto Completion Tests', () => {


describe('yamlCompletion with string array ', function () {

describe('doComplete', function () {

function setup (content: string) {
return TextDocument.create('file://~/Desktop/vscode-k8s/test.yaml', 'yaml', 0, content);
}

function parseSetup (content: string, position) {
const testTextDocument = setup(content);
return languageService.doComplete(testTextDocument, testTextDocument.positionAt(position), false);
}

it('Completion should insert ""', done => {
const content = 'fooBa';
const completion = parseSetup(content, content.lastIndexOf('Ba') + 2);
completion.then(function (result) {
assert.strictEqual('fooBar:\n\t- ${1:""}', result.items[0].insertText);
}).then(done, done);
});

});
});
});

12 changes: 12 additions & 0 deletions test/fixtures/testStringArray.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"fooBar": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}

0 comments on commit 3cdc18b

Please sign in to comment.