Code completion
ReSharper extends Visual Studio’s native code completion (IntelliSense) with more advanced capabilities. For example, it narrows down the list of suggestions based on your typing, understands lowerCamelHumps abbreviations, suggests variable and field names depending on their type names and your naming style, automatically imports selected types and extension methods, and more.
Symbol completion
Ctrl+Space code completion recognizes variables and methods, currently visible type names, keywords, and more. ReSharper automatically suggests prefixes when declaring identifiers, according to your naming style.
ReSharper even provides completion for unresolved symbols in local scope: even if a code symbol is not declared, ReSharper grabs its known members from its usages.
All ReSharper’s code completion features including symbol completion support CamelHumps — that is, you can complete any item by entering only its uppercase characters.
In ASP.NET files, ReSharper also provides code completion for web control properties and events, data sources, content placeholders, and of course, inline C# code.
When it comes to XAML, you have assistance with references to resources, whereas in build scripts, ReSharper helps you with property, target, task, and attribute names that are available within the current scope.
Generative completion
Ctrl+Space is, however, much more than that. It allows you also to quickly add symbol overrides, partial method bodies and partial classes, implement interface members and generate properties. ReSharper will generate and insert the whole body of method, constructor, property etc. when completing such items.

Smart completion
Smart Code Completion, invoked with Ctrl+Alt+Space , filters the list of methods, fields or variables to match the expected type of an expression.
For example, when you use Smart Completion for method call arguments, the list of suggested values is narrowed down only to the required parameter type. Smart Completion can also suggest creating anonymous methods, lambda expressions, and regular methods, as well as local variables for out parameters.
Smart Completion works like a charm in XAML event handlers and other contexts.

Import symbol completion
Import Symbol Completion is invoked with Shift+Alt+Space . Unlike Symbol Completion (which only completes types accessible at the current location), this command displays all types that match a specified prefix regardless of what namespace they belong to, and automatically adds the appropriate namespace import directives when necessary.
In C# code files, Import Symbol Completion works after dot with extension methods and puts necessary using directives. Import Symbol Completion is also very helpful in XAML markup for tag names. Namespace import directives are also inserted as required.

Double completion
When the completion list is empty or does not contain expected items, you can always press the shortcut for any completion type the second time.
ReSharper will extend the completion list with protected, private and internal members, symbols from non-referenced assemblies, call chains that have return values of the expected data type, casts to the expected data type, and more. Of course, if you use any of the suggestions the missing imports and references are added automatically.

Filters in code completion
ReSharper allows you to narrow down completion suggestions by kind of symbol, access modifiers and other filters. You can modify the set of applied filters each time code completion is invoked and/or choose to keep the state of filters.
C# typing assistants
ReSharper also provides a set of C# typing assistance features that correct subtle mistypes as you enter code.
For example, if you happen to type MethodName(.) , this will be automatically replaced with MethodName(). , allowing you to keep entering a call chain without having to deal with an invalid syntax error.
Similarly, ReSharper will correct a mistyped @$ prefix to $@ in verbatim string interpolations.
Note on shortcuts
All keyboard shortcuts provided in this page are available in ReSharper’s default «Visual Studio» keymap. For details on ReSharper’s two keymaps, see ReSharper Documentation.
IntelliSense
IntelliSense is a general term for various code editing features including: code completion, parameter info, quick info, and member lists. IntelliSense features are sometimes called by other names such as «code completion», «content assist», and «code hinting.»
IntelliSense for your programming language
Visual Studio Code IntelliSense is provided for JavaScript, TypeScript, JSON, HTML, CSS, SCSS, and Less out of the box. VS Code supports word based completions for any programming language but can also be configured to have richer IntelliSense by installing a language extension.
Below are the most popular language extensions in the Marketplace. Select an extension tile below to read the description and reviews to decide which extension is best for you.
IntelliSense features
VS Code IntelliSense features are powered by a language service. A language service provides intelligent code completions based on language semantics and an analysis of your source code. If a language service knows possible completions, the IntelliSense suggestions will pop up as you type. If you continue typing characters, the list of members (variables, methods, etc.) is filtered to only include members containing your typed characters. Pressing Tab or Enter will insert the selected member.
You can trigger IntelliSense in any editor window by typing ⌃Space (Windows, Linux Ctrl+Space ) or by typing a trigger character (such as the dot character ( . ) in JavaScript).
Tip: The suggestions widget supports CamelCase filtering, meaning you can type the letters which are upper cased in a method name to limit the suggestions. For example, «cra» will quickly bring up «createApplication».
If you prefer, you can turn off IntelliSense while you type. See Customizing IntelliSense below to learn how to disable or customize VS Code’s IntelliSense features.
As provided by the language service, you can see quick info for each method by either pressing ⌃Space (Windows, Linux Ctrl+Space ) or clicking the info icon. The accompanying documentation for the method will now expand to the side. The expanded documentation will stay so and will update as you navigate the list. You can close this by pressing ⌃Space (Windows, Linux Ctrl+Space ) again or by clicking on the close icon.
After choosing a method you are provided with parameter info.

When applicable, a language service will surface the underlying types in the quick info and method signatures. In the image above, you can see several any types. Because JavaScript is dynamic and doesn’t need or enforce types, any suggests that the variable can be of any type.
Types of completions
The JavaScript code below illustrates IntelliSense completions. IntelliSense gives both inferred proposals and the global identifiers of the project. The inferred symbols are presented first, followed by the global identifiers (shown by the Word icon).
![]()
VS Code IntelliSense offers different types of completions, including language server suggestions, snippets, and simple word based textual completions.
| Icon | Name | Symbol type |
|---|---|---|
| Methods and Functions | method , function , constructor | |
| Variables | variable | |
| Fields | field | |
| Type parameters | typeParameter | |
| Constants | constant | |
| Classes | class | |
| Interfaces | interface | |
| Structures | struct | |
| Events | event | |
| Operators | operator | |
| Modules | module | |
| Properties and Attributes | property | |
| Values and Enumerations | value , enum | |
| References | reference | |
| Keywords | keyword | |
| Files | file | |
| Folders | folder | |
| Colors | color | |
| Unit | unit | |
| Snippet prefixes | snippet | |
| Words | text |
Customizing IntelliSense
You can customize your IntelliSense experience in settings and key bindings.
Settings
The settings shown below are the default settings. You can change these settings in your settings.json file as described in User and Workspace Settings.
// Controls if quick suggestions should show up while typing "editor.quickSuggestions": "other": true, "comments": false, "strings": false >, // Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character. "editor.acceptSuggestionOnCommitCharacter": true, // Controls if suggestions should be accepted on 'Enter' - in addition to 'Tab'. Helps to avoid ambiguity between inserting new lines or accepting suggestions. The value 'smart' means only accept a suggestion with Enter when it makes a textual change "editor.acceptSuggestionOnEnter": "on", // Controls the delay in ms after which quick suggestions will show up. "editor.quickSuggestionsDelay": 10, // Controls if suggestions should automatically show up when typing trigger characters "editor.suggestOnTriggerCharacters": true, // Controls if pressing tab inserts the best suggestion and if tab cycles through other suggestions "editor.tabCompletion": "off", // Controls whether sorting favours words that appear close to the cursor "editor.suggest.localityBonus": true, // Controls how suggestions are pre-selected when showing the suggest list "editor.suggestSelection": "first", // Enable word based suggestions "editor.wordBasedSuggestions": true, // Enable parameter hints "editor.parameterHints.enabled": true, >
Tab Completion
The editor supports «tab completion» which inserts the best matching completion when pressing Tab . This works regardless of the suggest widget showing or not. Also, pressing Tab after inserting a suggestions will insert the next best suggestion.
By default, tab completion is disabled. Use the editor.tabCompletion setting to enable it. These values exist:
- off — (default) Tab completion is disabled.
- on — Tab completion is enabled for all suggestions and repeated invocations insert the next best suggestion.
- onlySnippets — Tab completion only inserts static snippets which prefix match the current line prefix.
Locality Bonus
Sorting of suggestions depends on extension information and on how well they match the current word you are typing. In addition, you can ask the editor to boost suggestions that appear closer to the cursor position, using the editor.suggest.localityBonus setting.

In above images you can see that count , context , and colocated are sorted based on the scopes in which they appear (loop, function, file).
Suggestion selection
By default, VS Code pre-selects the first suggestion in the suggestion list. If you’d like different behavior, for example, to always select the most recently used item in the suggestion list, you can use the editor.suggestSelection setting.
The available editor.suggestSelection values are:
- first — (default) Always select the top list item.
- recentlyUsed — The previously used item is selected unless a prefix (type to select) selects a different item.
- recentlyUsedByPrefix — Select items based on previous prefixes that have completed those suggestions.
Selecting the most recently used item is very useful as you can quickly insert the same completion multiple times.
«Type to select» means that the current prefix (roughly the text left of the cursor) is used to filter and sort suggestions. When this happens and when its result differs from the result of recentlyUsed , it will be given precedence.
When using the last option, recentlyUsedByPrefix , VS Code remembers which item was selected for a specific prefix (partial text). For example, if you typed co and then selected console , the next time you typed co , the suggestion console would be pre-selected. This lets you quickly map various prefixes to different suggestions, for example co -> console and con -> const .
Snippets in suggestions
By default, VS Code shows snippets and completion proposals in one widget. You can control the behavior with the editor.snippetSuggestions setting. To remove snippets from the suggestions widget, set the value to «none» . If you’d like to see snippets, you can specify the order relative to suggestions; at the top ( «top» ), at the bottom ( «bottom» ), or inline ordered alphabetically ( «inline» ). The default is «inline» .
Key bindings
The key bindings shown below are the default key bindings. You can change these in your keybindings.json file as described in Key Bindings.
Note: There are many more key bindings relating to IntelliSense. Open the Default Keyboard Shortcuts ( File > Preferences > Keyboard Shortcuts) and search for «suggest».
[ "key": "ctrl+space", "command": "editor.action.triggerSuggest", "when": "editorHasCompletionItemProvider && editorTextFocus && !editorReadonly" >, "key": "ctrl+space", "command": "toggleSuggestionDetails", "when": "editorTextFocus && suggestWidgetVisible" >, "key": "ctrl+alt+space", "command": "toggleSuggestionFocus", "when": "editorTextFocus && suggestWidgetVisible" > ]
Enhance completions with AI
In VS Code, you can enhance your coding with artificial intelligence (AI), such as suggestions for lines of code or entire functions, fast documentation creation, and help creating code-related artifacts like tests.
GitHub Copilot is an AI-powered code completion tool that helps you write code faster and smarter. You can use the GitHub Copilot extension in VS Code to generate code, or to learn from the code it generates.

You can learn more about how to get started with Copilot in the Copilot documentation.
Troubleshooting
If you find IntelliSense has stopped working, the language service may not be running. Try restarting VS Code and this should solve the issue. If you are still missing IntelliSense features after installing a language extension, open an issue in the repository of the language extension.
Tip: For configuring and troubleshooting JavaScript IntelliSense, see the JavaScript documentation.
A particular language extension may not support all the VS Code IntelliSense features. Review the extension’s README to find out what is supported. If you think there are issues with a language extension, you can usually find the issue repository for an extension through the VS Code Marketplace. Navigate to the extension’s Details page and select the Support link.
Next steps
IntelliSense is just one of VS Code’s powerful features. Read on to learn more:
- JavaScript — Get the most out of your JavaScript development, including configuring IntelliSense.
- Node.js — See an example of IntelliSense in action in the Node.js walkthrough.
- Debugging — Learn how to set up debugging for your application.
- Creating Language extensions — Learn how to create extensions that add IntelliSense for new programming languages.
- GitHub Copilot in VS Code — Learn how to use AI with GitHub Copilot to enhance your coding.
Common questions
Why am I not getting any suggestions?

This can be caused by a variety of reasons. First, try restarting VS Code. If the problem persists, consult the language extension’s documentation. For JavaScript specific troubleshooting, please see the JavaScript language topic.
Why am I not seeing method and variable suggestions?

This issue is caused by missing type declaration (typings) files in JavaScript. You can check if a type declaration file package is available for a specific library by using the TypeSearch site. There is more information about this issue in the JavaScript language topic. For other languages, please consult the extension’s documentation.
Visual Studio IntelliSense Not Working? Multiple Ways for You!
Is Visual Studio IntelliSense not working or VS Code IntelliSense not working on Windows 11/10? This post is written by MiniTool to help you find useful solutions to fix this issue. Go to look through this article to know what you should do.
Visual Studio/Visual Studio Code IntelliSense Not Working
According to Microsoft, IntelliSense is a code-completion tool that offers various code editing features like Complete Word, List Members, Quick Info, and Parameter Info. IntelliSense is used for specific programming languages like JavaScript, JSON, CSS, SCSS, TypeScript, HTML, and Less. IntelliSense makes the coding task easy since some suggestions or tool tips for writing code will be offered.
IntelliSense is equipped with Visual Studio and Visual Studio Code (VS Code). In Visual Studio, IntelliSense options are enabled by default. To know more information about this feature, go to read two related posts:
- IntelliSense in Visual Studio
- IntelliSense in Visual Studio Code
In some cases, Visual Studio IntelliSense not working or VS Code IntelliSense not working can happen on Windows 10/11 PC due to some unknown reasons. If you are used to using it, you can find it is difficult to code when this issue appears. What should you do? Go to the next part and you can find multiple solutions to fix this problem.
How to Fix IntelliSense Not Working Visual Studio/Visual Studio Code
Restart Visual Studio or VS Code
When a program goes wrong, the first thing someone will tell you is to restart it. Thus, you can also give it a try when IntelliSense is not working. Just restart VS Code or Visual Studio. In some cases, this fix is very useful and time-consuming. If it fails to fix the issue, go on troubleshooting.
Update VS Code/Visual Studio
Sometimes updating a program can help to fix issues, bugs, or errors in the program. To fix Visual Studio IntelliSense not working/Visual Studio Code IntelliSense not working, you can also try to update the code editor.
In Visual Studio Code, go to click the gear icon and choose Check for Updates. In Visual Code, click Help from the menu bar and choose Check for Updates.

![]()
Guide — How to Update Visual Studio to a New Version in Windows
To gain a better experience, you can choose to update Visual Studio. If you don’t know how to do it, this post can help you a lot in multiple ways.
Reinstall VS Code/Visual Studio
Reinstalling Visual Studio or Visual Studio Code is a good method to fix IntelliSense not working on Windows 11/10. Just go to uninstall the program from Control Panel, then download the latest version of the code editor and install it on your PC. These two related posts may be helpful:
- Visual Studio 2022 Download and Install on Windows & Mac
- Visual Studio Code Download for Windows 11/10/8, Linux & Mac
Install Extensions
It is necessary to install an extension specifically for a specific language to get a greater experience and more auto-complete features.
Step 1: In Visual Studio Code, go to Extensions Panel (Ctrl+Shift+X).
Step 2: Search for Intellisense + [Name of language] like Intellisense Python.
Step 3: Choose one from the list of extensions and click on Install.

Other Solutions:
In addition to these methods, some users recommend restarting the computer to fix Visual Studio IntelliSense not working. Besides, some other fixes – select the correct programming language mode, check settings of the code editor, uninstall and reinstall all the .NET software, etc. are also helpful and you can have a try.
If you have tried some other workarounds to solve IntelliSense not working, tell us in the comment part below. Thanks a lot.
About The Author
Vera is an editor of the MiniTool Team since 2016 who has more than 7 years’ writing experiences in the field of technical articles. Her articles mainly focus on disk & partition management, PC data recovery, video conversion, as well as PC backup & restore, helping users to solve some errors and issues when using their computers. In her spare times, she likes shopping, playing games and reading some articles.
How to work with ChatGPT in Visual Studio Code
![]()
In this article, we will play with a ChatGPT extension for Visual Studio Code to create code. We will play with the T-SQL code and show what this extension can do. If you are not familiar with ChatGPT, you can check our previous articles.

Requirements to install the ChatGPT extension in Visual Studio Code
In order to start, you need to have Visual Studio Code installed. This is a light and great code editor. It works in Microsoft, Mac, and Linux. You can write several languages like Python, SQL, C++, and Java. Visual Studio Code is integrated with Git. Please install it and follow these steps to configure the ChatGPT extension.
First, we will install ChatGPT: write and improve code using AI. Press the Extension icon using the Extension icon at the left. There are several extensions. We may watch other extensions in the next articles.
Secondly, search for the ChatGPT: write and improve code using AI. Select it and press Install.

Thirdly, go to the menu and select File>Preferences>Settings. We need to connect our Extension to the ChatGPT REST API.

Also, look for ChatGPT and click on the URL. This URL will take you to the ChatGPT REST API. Basically, we will connect to the API by using a secret key provided in the link.

In addition, press the Open button to open the page.

Press the Create new secret key button to create a new key and copy it.

Also, copy the key in the Chatgpt Api Key text box in Visual Studio Code.

Finally, you can customize the orders of the Extension.

Installing the SQL Server (mssql) extension
In this section, we will install the SQL Server extension in Visual Studio Code.
First, go to Extensions.
Secondly, select the SQL Server (mssql) created by Microsoft and press the Install button.

Thirdly, click on the SQL Server icon after the installation.

Press the + icon to add a new connection.

Also, write the SQL Server instance name instance name.
![]()
In addition, write the database name. In this example Adventureworks2019.

Finally, select the authentication type. Integrated is the Windows authentication. SQL login is to log in with logins created in SQL Server. Azure AD is for Azure databases.

Working with ChatGPT in Visual Studio Code – Explain the code
First, to the connection created and go to Programmability>Stored Procedures>dbo.uspLogError.

Secondly, select all the code and right-click and select ChatGPT: Explain selection option.

Thirdly ChatGPT will explain to you all the code and the parameters and what the store procedure does.

Next, I will select use this line of code and right-click and select the ChatGPT: Explain selection option.
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Logs error information in the ErrorLog table about the error that caused execution to jump to the CATCH block of a TRY. CATCH construct. Should be executed from within the scope of a CATCH block otherwise it will return without inserting error information.' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'PROCEDURE',@level1name=N'uspLogError' GO
Finally, you will get the following explanation.

I like ChatGPT helping me to understand the code let’s try other features.
Working with ChatGPT in Visual Studio Code – Refactor and Find Problems
There is an option to refactor the code. You can improve the design and quality of the code using the Refactor option. To do that, you need to follow these steps:
First, select all the code and right-click and select the ChatGPT: Refactor selection

Secondly, check the refactored code:
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- uspLogError logs error information in the ErrorLog table about the -- error that caused execution to jump to the CATCH block of a -- TRY. CATCH construct. This should be executed from within the scope -- of a CATCH block otherwise, it will return without inserting error -- information. CREATE PROCEDURE [dbo].[uspLogError] @ErrorLogID [int] = 0 OUTPUT -- contains the ErrorLogID of the row inserted by uspLogError in the ErrorLog table. AS BEGIN SET NOCOUNT ON; -- Output parameter value of 0 indicates that error information was not logged. SET @ErrorLogID = 0; BEGIN TRY -- Return if there is no error information to log. IF ERROR_NUMBER() IS NULL RETURN; -- Return if inside an uncommittable transaction. Data insertion/modification is not allowed when a transaction is in an uncommittable state. IF XACT_STATE() = -1 BEGIN PRINT 'Cannot log error since the current transaction is in an uncommittable state. Rollback the transaction before executing uspLogError in order to successfully log error information.'; RETURN; END INSERT [dbo].[ErrorLog] ([UserName], [ErrorNumber], [ErrorSeverity], [ErrorState], [ErrorProcedure], [ErrorLine], [ErrorMessage]) VALUES (CONVERT(sysname, CURRENT_USER), ERROR_NUMBER(), ERROR_SEVERITY(), ERROR_STATE(), ERROR_PROCEDURE(), ERROR_LINE(), ERROR_MESSAGE()); -- Pass back the ErrorLogID of the row inserted. SET @ErrorLogID = @@IDENTITY; END TRY BEGIN CATCH PRINT 'An error occurred in stored procedure uspLogError: '; EXECUTE [dbo].[uspPrintError]; RETURN -1; END CATCH; END; GO
Also, we will check if ChatGPT can find some problems in the code. Right-click the code and select ChatGPT: Find problems.

Finally, you will be able to see the ChatGTP output:

I will remove a parenthesis to check if ChatGPT fixes the problem:
Original code with the section modified:
INSERT [dbo].[ErrorLog] ( [UserName], [ErrorNumber],
And this is the segment of the code modified without parenthesis:
INSERT [dbo].[ErrorLog] [UserName], [ErrorNumber],
I will try to find problems again:

And yes, it provides a good explanation and also shows the correct code. What I like is that if you click on the code, it is copied.

Working with ChatGPT in Visual Studio Code – Optimize code and write documentation
In order to optimize the code, we will follow these steps:
First, select the code right click and select the ChatGTP: Optimize selection option. The ChatGTP feedback is the following:

Let’s try another code.
First, I have this table:
CREATE TABLE myvalues ( id INT )
Secondly, I have this code to insert values from 1 to 100 in the table:
WHILE (@counterThirdly, we will use the ChatGTP optimize option and we will get this code:
DECLARE @counter INT = 1 WHILE (@counterMe:
Can you convert this code to use CTE? (include the previous code here)
ChatGPT: Sure! Here is the code to use a common table expression (CTE) to insert values from 1 to 100 into the "myvalues" table:
WITH counter_values AS ( SELECT 1 AS val UNION ALL SELECT val + 1 FROM counter_values WHERE val < 100 ) INSERT INTO myvalues (id) SELECT val FROM counter_values OPTION (MAXRECURSION 0)This code creates a CTE called "counter_values" that recursively generates a sequence of numbers from 1 to 100. It then inserts these values into the "id" column of the "myvalues" table using a single INSERT INTO…SELECT statement. Note that the OPTION (MAXRECURSION 0) clause is included to ensure that SQL Server allows for the maximum number of recursion iterations.
Also, we will try to Write documentation. Select the code, right-click, and select ChatGPT: Write documentation.
As you can see, ChatGPT creates nice documentation for the code.
Conclusion about ChatGPT in SQL Server
In this article, we saw how to install a ChatGPT extension in Visual Studio Code, and we also learned how to add the SQL Server extension. Also, we learned how to connect to ChatGPT using REST API. We need a key code to connect. As we discussed in previous forums, ChatGPT is still doing some mistakes, but I can feel the potential, and I know that it will improve a lot especially because Microsoft is helping a lot of OpenAI, so I think in the long run, it will change the software industry.


