Sometimes you may need to create temporary notes or draft up some code outside of the project context. Instead of switching to a different application for this purpose, you can use scratch files and scratch buffers.
Scratch files support syntax highlighting for the corresponding file type, and you can use them to draft any code instances, from C/C++ constructs to JSON documents. For example, while working on one project, you may come up with an idea for a method that you could later use in another project. You can create a scratch file with a draft of the method, which is not stored in your project directory but can be accessed and opened from another project.
Scratch buffers are simple text files without any coding assistance features. Scratch buffers can be used for simple task lists and notes to yourself. They are also not stored in the project directory but can be accessed and opened from another project. You can create up to five scratch buffers with default names, which are rotated and reused by clearing the content.
Create a scratch file
Do one of the following:
Press Ctrl+Shift+A, start typing
scratch fileand then pick the corresponding action.
Select the language of the scratch file. Scratch files of the same type are automatically numbered and added to the Scratches and Consoles directory of the Project tool window.
Create a scratch buffer
There is no dedicated menu item for the action to create a new scratch buffer, but you can use the Find Action popup Ctrl+Shift+A and run the New Scratch Buffer action.
Also, you can create a shortcut for the New Scratch Buffer action as described in Keyboard shortcuts.
CLion creates a text file named buffer1.txt. The next scratch buffer you create is named buffer2.txt, and so on up to buffer5.txt. When that limit is reached, it will recreate buffer1.txt and suggest to clear the content for it. If you want to make sure that a scratch buffer is not cleared after you have five, you can rename it.
View the list of scratch files and buffers
To see the list of created scratch files and buffers, open the Project tool window, expand , and then expand .
Scratch files and buffers are stored in the IDE configuration directory under scratches. They are available from any IDE and project that uses this configuration directory.
- ~/Library/Application Support/JetBrains/<product><version>
- ~/Library/Application Support/JetBrains/CLion2021.1
View documentation for scratches
Select any scratch file or buffer and press Ctrl+Q to view quick documentation with the location, type, size, creation and modification date of the file.
In the Project tool window, in the directory, select the scratch file to move.
Press F6 and select the target folder in the dialog that opens.
Change the language of a scratch file or buffer
In the Project tool window, expand Scratches and Consoles, and then expand Scratches.
Right-click a scratch file or buffer and then click Change Language. The current language is specified in parentheses.
Select the desired language. You can start typing the name of the language to narrow down the list.
Run an SQL scratch file
To run an SQL scratch file, you need to have a connection to a data source. In CLion, you need to attach a scratch file to the query console.
When you attached the console, the objects in your SQL are resolved. This means that CLion now understands which particular objects are used in your code. As a result, you can navigate from the SQL code to the database tree.
Press Ctrl+Enter or click the Run button . In the Sessions window, select a query console.
Click the <session> switcher, which is in the upper right of the window, and select a console. The switcher menu includes consoles that are associated with the same language as your scratch file.
If you want to attach a console from another DBMS, change the scratch file language. To change a language, right-click any area in the open scratch file, and click Change Language.
Right-click any area in the open scratch file and click Execute. In the Sessions window, select a query console.
Like any other file, you can perform the following operations with scratch files: