Code brushes for GitHub Copilot

Christian Heilmann - Dec 13 '22 - - Dev Community

GitHub Copilot is incredible, and if you check what's happening in the preview released as the Copilot Labs extension it will only get more amazing.

Check this out:

Code brushes applied to a simple JavaScript

Let's start with a basic JavaScript that checks a string length and reports when it is empty. One with an obvious mistake, as we use a single = instead of the type safe ===. This will always report the string as empty.

if (str.length = 0) {
    console.error('String is empty');
}
Enter fullscreen mode Exit fullscreen mode

Using the Fix bugs brush, this is rectified.

if (str.length === 0) {
    console.error('String is empty');
}
Enter fullscreen mode Exit fullscreen mode

Using the Clean brush also adds reporting when the string is not empty.

if (str.length === 0) {
    console.error('String is empty');
} else {
    console.log('String is not empty');
}
Enter fullscreen mode Exit fullscreen mode

Using the List steps brush adds comments for step (sure, this is redundant, but it also works for much more complex code).

// check the length of the string
if (str.length === 0) {
    // if length is 0, print 'String is empty' 
    console.error('String is empty');
} else {
    // if length is not 0, print 'String is not empty'
    console.log('String is not empty');
}
Enter fullscreen mode Exit fullscreen mode

Using Make robust adds error reporting instead of logging and an extra check to make sure that str is really a String and not an empty Array.

function test(str) {
    if (str.length === 0) {
        throw new Error('String is empty');
    } else if (typeof str !== 'string') {
        throw new Error('It is not a string');
    } else {
        console.log('String is not empty');
    }
}
Enter fullscreen mode Exit fullscreen mode

The Add types brush does exactly that.

/**
 * @param {string} str
 * @returns {string}
 */
function test(str) {
    if (str.length === 0) {
        throw new Error('String is empty');
    } else if (typeof str !== 'string') {
        throw new Error('It is not a string');
    } else {
        console.log('String is not empty');
    }
}
Enter fullscreen mode Exit fullscreen mode

You can also define custom brushes and there are more to come.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Terabox Video Player