# Macros

Generate boilerplate code and perform other compile-time operations.

## Topics

### Essentials

- <doc:applying-macros>

### Getting Source Location Information

- ``Swift/file()``
- ``Swift/fileID()``
- ``Swift/filePath()``
- ``Swift/function()``
- ``Swift/line()``
- ``Swift/column()``

### Generating Compile-Time Diagnostics

- ``Swift/warning(_:)``
- ``Swift/error(_:)``

### Writing Custom Macros

- ``Swift/externalMacro(module:type:)``

### Accessing the Dynamic Shared Object Handle

- ``Swift/dsohandle()``
