The Looker IDE (integrated development environment) provides access to your LookML project files and the settings for your LookML project.

![The Looker IDE](https://docs.cloud.google.com/static/looker/docs/images/looker-ide-2506.png)

## Accessing the Looker IDE

To see a LookML project, you must have the [`develop`](https://docs.cloud.google.com/looker/docs/admin-panel-users-roles#develop) permission for at least one model in the project. You can access the Looker IDE through the **Develop** panel of the Looker main navigation menu:

![Develop menu showing project selection](https://docs.cloud.google.com/static/looker/docs/images/dev-open-project-2120.png)

1. Select **Develop** in the navigation panel to open the **Develop** panel.
2. In the **Develop** panel, select the name of the project that you want to access.

Looker opens the IDE to the LookML project that you selected.

Alternatively, you can open the IDE to specific LookML objects [from an Explore](https://docs.cloud.google.com/looker/docs/accessing-project-files#accessing_lookml_from_an_explore) or [from the object browser](https://docs.cloud.google.com/looker/docs/accessing-project-files#accessing_lookml_from_the_object_browser_panel). See [Accessing project files](https://docs.cloud.google.com/looker/docs/accessing-project-files) for details and other options.

## Elements of the Looker IDE

The Looker IDE has the following elements:

![Elements of the Looker IDE](https://docs.cloud.google.com/static/looker/docs/images/looker-ide-elements-all-2506.png)

1. Development Mode banner: This banner indicates that you are in [Development Mode](https://docs.cloud.google.com/looker/docs/dev-mode-prod-mode#development_mode), where you can make changes to LookML files and preview how they will affect content on your instance. You can click the **Exit Development Mode** link in the banner to go into [Production Mode](https://docs.cloud.google.com/looker/docs/dev-mode-prod-mode#production_mode).

   > [!NOTE]
   > **Note:** To increase performance, when a developer in Development Mode opens a LookML project for the first time, the Looker IDE loads LookML projects in [Production Mode](https://docs.cloud.google.com/looker/docs/dev-mode-prod-mode#production_mode) until the developer clicks the **Create Developer Copy** button for the project. Once a developer clicks the **Create Developer Copy** button for the project, the Looker IDE loads the LookML project in [Development Mode](https://docs.cloud.google.com/looker/docs/dev-mode-prod-mode#development_mode) for that developer and creates the developer's [personal Git branch](https://docs.cloud.google.com/looker/docs/version-control-and-deploying-changes#personal_branches).

2. IDE navigation bar: Use the navigation bar to access different features of the Looker IDE. Some of the feature are available only when you are in Development Mode. Once you've selected a feature from the IDE navigation bar, you can select the navigation bar item a second time to collapse the feature panel. The IDE navigation bar provides access to the following IDE features:

   - **File Browser** : Opens the [**file browser**](https://docs.cloud.google.com/looker/docs/ide-folders), which gives you access to the files and folders in your LookML project.
   - **Object Browser** : Opens the [**object browser**](https://docs.cloud.google.com/looker/docs/object-browser), which displays the LookML objects in your project and shows the hierarchical relationships between the objects.
   - **Find and Replace** : Displays the [**Find \& Replace in Project**](https://docs.cloud.google.com/looker/docs/looker-ide#finding_and_replacing_text_in_your_project) page, which you can use to search all your project files for text and then replace all instances or selected instances in a bulk operation.
   - **Continuous Integration** : (Visible only if [Continuous Integration is enabled](https://docs.cloud.google.com/looker/docs/continuous-integration#enable-ci)) Opens the [Continuous Integration (CI)](https://docs.cloud.google.com/looker/docs/continuous-integration) page, where you can create CI suites that run tests on your LookML project to catch issues with SQL, data tests, content, and LookML before they hit production.
   - **Git Actions** : (Visible in Development Mode only) Displays the Git branches on your project and shows the Git commands that are available for your Git branch of the project. See the [Using version control and deploying](https://docs.cloud.google.com/looker/docs/version-control-and-deploying-changes) documentation page for information about using Git with your LookML project.
   - **Settings** : (Visible in Development Mode only) Displays the project settings pages for your project where you can configure [project version control options](https://docs.cloud.google.com/looker/docs/git-options#configuration), authentication credentials for [imported projects](https://docs.cloud.google.com/looker/docs/importing-projects), [Git branches](https://docs.cloud.google.com/looker/docs/version-control-and-deploying-changes#managing_git_branches) used by your project, and [IDE settings](https://docs.cloud.google.com/looker/docs/looker-ide#text-editor).
   - **Deploy** : (Visible in Development Mode only) Opens the **Deployment Manager** , where you can view a list of recent deployments for your project. In addition, for projects that are set up with [advanced deploy mode](https://docs.cloud.google.com/looker/docs/advanced-deploy-mode), developers who have the [`deploy` permission](https://docs.cloud.google.com/looker/docs/admin-panel-users-roles#deploy) can use the deployment manager to deploy a commit or tag to their Looker production environment.
3. Feature panel: Provides navigation for LookML files and objects for the file browser and object browser, search parameters for the find and replace function, available Git commands for the **Git Actions** panel, and tabs to access different settings for the project settings panel.

4. IDE editor panel: The editor for LookML files. The editor is displayed when **File Browser** or **Object Browser** is selected in the IDE navigation bar. See [Looker IDE editing features](https://docs.cloud.google.com/looker/docs/looker-ide#ide-features) for more information about the editor.

5. Side panel selector: Click an option to open the IDE side panel features:

   - **Help me code** : (For [Looker (Google Cloud core)](https://docs.cloud.google.com/looker/docs/looker-core-overview) instances with [Gemini enabled](https://docs.cloud.google.com/looker/docs/looker-core-admin-gemini#enable-and-disable)) Opens the **Help me code** panel.
   - **Project Health** : Opens the **Project Health** panel.
   - **Quick Help** : Opens the **Quick Help** panel, which includes a tab to access the **Metadata** panel. Click the side panel selector option a second time to hide the IDE side panel.
6. IDE side panel: Displays the selected side panel feature:

   - **Project Health** : Lets you [check for unbuilt PDTs](https://docs.cloud.google.com/looker/docs/version-control-and-deploying-changes#checking_for_unbuilt_pdts) or [validate your LookML](https://docs.cloud.google.com/looker/docs/lookml-validation). If your LookML developers have defined data tests to verify the logic of the project's LookML, you can also [run data tests](https://docs.cloud.google.com/looker/docs/version-control-and-deploying-changes#running_data_tests) from the **Project Health** panel.
   - [**Quick Help**](https://docs.cloud.google.com/looker/docs/looker-ide#quick_help_panel): Displays the LookML options that apply to the cursor's location in a LookML file and provides a link to the Looker reference documentation for each LookML parameter.
   - [**Metadata**](https://docs.cloud.google.com/looker/docs/lookml-metadata): Provides contextually relevant information about the LookML object at the cursor's location.
   - [**Help me code**](https://docs.cloud.google.com/looker/docs/looker-ide#help-me-code): (For [Looker (Google Cloud core)](https://docs.cloud.google.com/looker/docs/looker-core-overview) instances with [Gemini enabled](https://docs.cloud.google.com/looker/docs/looker-core-admin-gemini#enable-and-disable)): Lets you use Gemini in Looker to help write LookML.
7. Git button: Depending on the state of your project, the button shows the next action that you should take to get your project to production, such as **Validate LookML** , **Push Branch to Remote** , or **Commit** . Click the button to perform the action. See the [Git command reference](https://docs.cloud.google.com/looker/docs/git-command-reference) for the possible commands that the button can display and execute.

## Setting up the Looker IDE

You can customize the Looker IDE in the following ways:

- Select the [text editor mode](https://docs.cloud.google.com/looker/docs/looker-ide#text-editor)
- Enable or disable the [line wrap mode](https://docs.cloud.google.com/looker/docs/looker-ide#line-wrap)
- [Resize the IDE side panels](https://docs.cloud.google.com/looker/docs/looker-ide#resizing-sidebars)
- [Collapse the IDE side panels](https://docs.cloud.google.com/looker/docs/looker-ide#collapsing-sidebar) to maximize the width of the editor in the window

### Text editor modes

The Looker IDE supports three text editor modes:

- Looker IDE editor (default)
- [Vim](https://www.vim.org/)
- [Emacs](https://www.gnu.org/software/emacs)

To change the text editor mode, follow these steps:

1. Select the **Settings** icon from the left navigation pane in the Looker IDE.
2. Select the **Editor** tab from the **IDE Settings**.
3. Use the **Text Editor Mode** pull-down menu to select your option.

Once you select an option from the pull-down menu, the Looker IDE is immediately updated to use the selected text editor mode.

> [!TIP]
> **Tip:** You can also select your text editor preference from your [Looker user account settings page](https://docs.cloud.google.com/looker/docs/user-account#text-editor).

### Line wrap mode

By default, the Looker IDE is enabled for line wrapping.

To enable or disable line wrapping:

1. Select the **Settings** icon from the left navigation pane in the Looker IDE.
2. Select the **Editor** tab from the **IDE Settings**.
3. Use the **Line wrap mode** toggle to enable or disable line wrapping in the IDE.

Once you change the toggle, the update is applied to the Looker IDE.

### Local IDE development

> [!WARNING]
>
> **Preview**
>
>
> This feature is
>
> subject to the "Pre-GA Offerings Terms" in the General Service Terms section of the
> [Service Specific
> Terms](https://docs.cloud.google.com/terms/service-terms#1).
>
> Pre-GA features are available "as is" and might have limited support.
>
> For more information, see the
> [launch stage descriptions](https://cloud.google.com/products/#product-launch-stages).

In addition to the browser-based IDE, you can develop LookML in local desktop environments such as Visual Studio Code or Cursor by using the [**Looker extension for VS Code**](https://docs.cloud.google.com/looker/docs/getting-started-vscode-extension).

The Looker extension for VS Code lets you do the following:

- Use rich syntax highlighting and autocomplete in your preferred local editor.
- Synchronize your local LookML files with your Looker instance in real time.
- Leverage local AI coding agents for faster development.
- Manage Git branches and commit code by using standard local Git workflows.

See [Getting started with the Looker extension for VS Code](https://docs.cloud.google.com/looker/docs/getting-started-vscode-extension) for installation and configuration details.

### Resizing the IDE side panels

You can change the width of the panels in the IDE, both the feature panel (which contains the **File Browser** , **Object Browser** , and **Git Actions** panels) and the side panel (which contains the **Project Health** , **Quick Help** , and **Metadata** panels).

To resize the IDE panels, hold your cursor over the panel border, then drag to resize the panel:

![Resizing the IDE panels](https://docs.cloud.google.com/static/looker/docs/images/ide-resize-panels-2416.png)

If you are in Development Mode, the IDE will [persist](https://docs.cloud.google.com/looker/docs/looker-ide#reset-layout) the size of the side panels across logins and refreshes.


### Collapsing the IDE side panels

If you want to maximize the width of the IDE editor panel, you can collapse the IDE side panels:

![Collapsing the IDE side panels](https://docs.cloud.google.com/static/looker/docs/images/ide-collapse-side-panels-2414.png)

- To show or hide the IDE feature panel, either use the keyboard shortcut Command-B (Mac) or Ctrl+B (Windows), or click an icon in the IDE navigation bar that is already selected.
- To show or hide the IDE side panel, click an icon in the side panel selector that is already selected.

## Looker IDE editing features

The following sections describe some of the Looker IDE editing features that can help you develop in LookML:

- [Autosuggest](https://docs.cloud.google.com/looker/docs/looker-ide#autosuggest)
- [Ad hoc error checking](https://docs.cloud.google.com/looker/docs/looker-ide#ad_hoc_error_checking)
- [Automatic formatting](https://docs.cloud.google.com/looker/docs/looker-ide#automatic_formatting)
- [Folding](https://docs.cloud.google.com/looker/docs/looker-ide#folding)
- [Commenting](https://docs.cloud.google.com/looker/docs/looker-ide#adding_comments)
- [Seeing additions, changes, and deletions](https://docs.cloud.google.com/looker/docs/looker-ide#marking_additions,_changes,_and_deletions)
- [IDE state persistence](https://docs.cloud.google.com/looker/docs/looker-ide#reset-layout)
- [Jump to object or file](https://docs.cloud.google.com/looker/docs/looker-ide#jump_to_object_or_file)

### Autosuggest

As you type, the IDE suggests possible parameters and values that are sensitive to the context of what you are typing. For example, the suggestions for a dimension's [`type`](https://docs.cloud.google.com/looker/docs/reference/param-dimension-filter-parameter-types) parameter will only include valid options for that parameter. Also, fields in `sql` parameters have to be marked with `${...}`, so the IDE adds that syntax when suggesting fields.

![The Looker IDE providing context-sensitive suggestions for a subparameter based on what a user has begun typing](https://docs.cloud.google.com/static/looker/docs/images/develop-ide-autosuggest-720.png)

Autosuggest automatically appears wherever it can be shown. To close it, press the **Esc** key on your keyboard. To view it at any point, press Ctrl+Space (Windows) or Control-Space (Mac).


### Ad hoc error checking

The IDE catches syntax errors as you type. A red X in the gutter indicates a syntax error, which is underlined in red. When you hold the cursor over the red X, a short description of the problem appears. For example, if you mistakenly type `avrage` instead of `average` as the value of the `type` parameter for a measure, the IDE displays the error `Invalid value for "type":avrage`.

![The Looker IDE highlighting a typo as an error](https://docs.cloud.google.com/static/looker/docs/images/develop-ide-error-check-720.png)

The LookML Validator is still required to perform a full model validation. Some errors, such as an invalid field reference that is caused by a missing join, require a holistic look at the model and therefore are only surfaced when the LookML Validator is run.

### Automatic formatting

When you are in Development Mode, you can use the [format file keyboard shortcut](https://docs.cloud.google.com/looker/docs/keyboard-shortcuts#format_file) to automatically indent your LookML file. The indentation indicates the hierarchy of parameters and subparameters, making your LookML easier to read and understand.

### Folding

A small arrow appears in the gutter next to the start of each top-level LookML parameter in the file. Selecting this arrow folds or unfolds that section of LookML so that you can focus on just particular sections.

![Folding arrow next to a top-level LookML parameter](https://docs.cloud.google.com/static/looker/docs/images/develop-ide-fold-720.png)

The **See file actions** menu for the LookML file also provides **Fold LookML** and **Unfold LookML** options to expand or collapse all LookML sections down to the top-level parameter within the current file.

![Fold LookML and Unfold LookML options in file actions menu](https://docs.cloud.google.com/static/looker/docs/images/develop-ide-fold-unfold-720.png)

You can also use [keyboard shortcuts](https://docs.cloud.google.com/looker/docs/keyboard-shortcuts#shortcuts_in_the_lookml_development_environment) to fold and unfold LookML.

### Commenting

You can add comments to your LookML to make it more readable. To add a single comment, use the `#` character:

    dimension: name {
      sql: ${TABLE}.name ;; # This is the customer's full name
    }

You can comment out an entire block of code using [keyboard shortcuts](https://docs.cloud.google.com/looker/docs/keyboard-shortcuts) by performing these steps:

1. Select the lines that you want to comment out.
2. Press **Command + /** (Mac) or **Ctrl + /** (Windows).

The IDE will add the `#` character to each of your selected lines.

#### Commenting out SQL blocks

If you are commenting out lines that are entirely within a SQL code block, manually add SQL comment notation.
> When you use the SQL comment block, the commented-out sections will still be interpreted as LookML code. Therefore, you will see your comments within LookML-generated SQL, but the comments won't affect the query results.

### Seeing additions, changes, and deletions

In the LookML IDE, several indicators are always displayed when you are in Development Mode and have uncommitted changes.

- The file's name is displayed with a blue dot in the left side of the window to indicate that the file is new, changed, or renamed.
- When you open a new or changed file, the line numbers inside the file are highlighted in green to show new or changed lines, and a horizontal red line indicates removed lines.

### IDE state persistence

When you are in [Development Mode](https://docs.cloud.google.com/looker/docs/dev-mode-prod-mode), the Looker IDE persists your IDE state across refreshes and logins. Your IDE state includes the following:

- The selected item in the IDE navigation bar (such as the file browser, Git actions, object browser, or project settings)
- Open LookML file that is displayed in the file browser
- Expanded or collapsed state of items in the file browser and object browser
- The width of the IDE side panels
- The selected item in the IDE's right sidebar (such as the Quick Help panel, the Metadata panel, and the Project Health panel)
- The [line wrap mode](https://docs.cloud.google.com/looker/docs/looker-ide#line-wrap) of the editor

To reset the IDE to its defaults, select the **Settings** icon from the left navigation pane in the Looker IDE, select the **Editor** tab from the **IDE Settings** section, and then click the **Reset IDE Layout** button. The IDE will persist your state again as you continue to open files and make selections.

### Jump to object or file

In the Looker IDE, you can do a quick search to navigate directly to LookML objects and project files by using the **Jump to object or file** feature. Click the **Jump to object or file** icon from the [file browser](https://docs.cloud.google.com/looker/docs/ide-folders) or the [object browser](https://docs.cloud.google.com/looker/docs/object-browser), or use the [keyboard shortcut](https://docs.cloud.google.com/looker/docs/keyboard-shortcuts) Command-J (Mac) or Ctrl+J (Windows).

![Tool tip for the Jump to object or file option](https://docs.cloud.google.com/static/looker/docs/images/dev-file-browser-jump-to-2106.png)

See the [Accessing LookML project files](https://docs.cloud.google.com/looker/docs/accessing-project-files#searching_for_and_jumping_to_lookml_objects_or_project_files) documentation page for more information.


## Quick Help panel

To open the **Quick Help** panel, select the **Quick Help** icon from the [file browser](https://docs.cloud.google.com/looker/docs/ide-folders) or the [object browser](https://docs.cloud.google.com/looker/docs/object-browser):

![Location of the Quick Help icon and panel](https://docs.cloud.google.com/static/looker/docs/images/develop-ide-quick-help-2206.png)

The **Quick Help** panel provides explanations and options for the current location in the code:

- In the IDE editor panel, you can click the fields and parameters in your LookML files, and the **Quick Help** panel will display the supported options and subparameters for that LookML element.
- In the **Quick Help** panel, you can click a parameter name to open the Looker documentation page for that parameter.

> [!NOTE]
> **Note:** You can also use the metadata panel to view contextually relevant information about the objects in the Looker IDE metadata panel. See the [Metadata for LookML objects](https://docs.cloud.google.com/looker/docs/lookml-metadata) documentation page for more information.

### Help me code panel

If you have a [Looker (Google Cloud core)](https://docs.cloud.google.com/looker/docs/looker-core-overview) instance with [Gemini enabled](https://docs.cloud.google.com/looker/docs/looker-core-admin-gemini#enable-and-disable), you can use Gemini in Looker to help write LookML:

![Looker IDE with the Help me code icon highlighted.](https://docs.cloud.google.com/static/looker/docs/images/ide-help-me-code-2416.png)

See the [Write LookML with Gemini in Looker assistance](https://docs.cloud.google.com/looker/docs/write-lookml-gemini) documentation for details.

## Options menus for files and folders


In the file browser, each file or folder in the left side panel has a menu that displays the available actions for that item. Hold the cursor over a file and folder, and then select the three-dot **Folder Options** menu (for folders) or **File Options** menu (for files) to open the menu. For an item that has a long name or that is nested in multiple folders, you can access the menu by scrolling sideways in the file browser panel.

From the options menus, you can create folders and files, upload files, and delete and move files and folders using the file browser. For more information, see the [Managing LookML files and folders](https://docs.cloud.google.com/looker/docs/creating-project-files) documentation page.

As you organize your LookML files with folders, you need to [commit your changes](https://docs.cloud.google.com/looker/docs/version-control-and-deploying-changes#committing_changes) and [deploy them to production](https://docs.cloud.google.com/looker/docs/version-control-and-deploying-changes#deploying_to_production) before other Looker developers can see them. This is just like any change you make to your LookML project.


## Finding and replacing text in your project

The Looker IDE has a find and replace function, which you can use to search all your project files for text and then replace all instances or selected instances in a bulk operation.

> [!TIP]
> **Tip:** The Looker IDE find and replace is a great tool for locating LookML elements in large LookML projects and for replacing text in descriptions and labels. If you want to search and replace in your project for the names of models, Explores, and fields, use [the Content Validator's find and replace function](https://docs.cloud.google.com/looker/docs/content-validation#using_the_content_validator_to_find_and_replace) instead. Changing the names of models, Explores, and fields can break references within your model, and the Content Validator can validate your LookML references and fix errors in your LookML after making these types of changes.

To use the Looker IDE find function, follow these steps:

![Find text search panel in the IDE](https://docs.cloud.google.com/static/looker/docs/images/develop-search-720.png)

1. Navigate to the search panel in the IDE.
2. Enter a term in the **Find** field.
3. Optionally, you can select **Case Sensitive** to search only for instances that match the case you entered in the **Find** field, or you can select **RegEX** to perform a regular expression search.
4. Select **Find**.
5. Optionally, you can select a file's name to open that file in the IDE.

If you are in [Development Mode](https://docs.cloud.google.com/looker/docs/dev-mode-prod-mode), you will also see the **Replace With** field. To replace text in your project, follow these steps:

![Replace With field in the search panel](https://docs.cloud.google.com/static/looker/docs/images/develop-search-replace-720.png)

1. Enter replacement text in the **Replace With** field. Optionally, you can leave the **Replace With** field blank if you want to delete the text in the **Find** field instead of replacing it.

2. Select **Select \& Replace** to preview how your text would be replaced in your project.

3. The results show all instances in your project highlighted for replacement. You can use the following options to customize which instances are replaced:

   - Use the checkbox next to the results summary to select or deselect all instances across your entire project.
   - Use the checkbox next to a single instance to select or deselect that instance.
4. Select the **Replace Selected** button to apply the replacement to the instances you've selected. The IDE will show the changes that were made.

![Search and replace preview results](https://docs.cloud.google.com/static/looker/docs/images/develop-search-replace-result-720.png)


## Creating and testing new fields

As an example of editing LookML, we'll add several fields and then test them.

### Creating a dimension

First we will add a new dimension to our `users` view that determines if a user is from either California or New York. The dimension will be `type: yesno`, which means it will return **Yes** if the user is from California or New York, and **No** if not.

The LookML for our new dimension looks like:

    dimension: from_ca_or_ny {
      type: yesno
      sql: ${TABLE}.state = "California" OR ${TABLE}.state = "New York" ;;
    }

Add this dimension to the `user` view file, and then click the **Save Changes** button in the file.

Check out [substitution operators](https://docs.cloud.google.com/looker/docs/sql-and-referring-to-lookml#substitution_operator_($)) to learn more about `${TABLE}.state`.

### Creating a measure

Next we will add a new measure to our `user` view that averages the age of our users. This measure will be `type: average` and aggregate over the column `age`.

The LookML for this new measure looks like:

    measure: average_age {
      type: average
      sql: ${TABLE}.age ;;
    }

Add this measure to the `user` view file, and then click the **Save Changes** button in the file.

### Testing the fields in the Explore

You can test your new dimension and measure by querying them. After you save your changes, these fields will appear in the field picker in the Explore. Use the **See file actions** drop-down menu next to the view filename to access the Explore for the current view. The **See file actions** drop-down menu lists any Explores that are based on the view, including Explores that the view is joined to. As an example, to access the Explore for a view called `users`, you can select the **Explore Users** option from the **See file actions** drop-down menu.

![Explore option in the See file actions drop-down menu](https://docs.cloud.google.com/static/looker/docs/images/develop-ide-explore-720.png)

In the **Users** Explore, you can select the new fields to add them to a query. For example, you can create a query with both of the new fields that shows the average age of users who are from California or New York and the average age of users who are not:

![Data table for a sample Users Explore with the Users from CA or NY (Yes/No) and Users Average Age fields selected.](https://docs.cloud.google.com/static/looker/docs/images/develop-ide-explore-results-720.png)

> [!NOTE]
> **Note:** You must be in Development Mode to access these new fields until you have committed and pushed your changes to production.